tjbot-ce 3.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.
- package/LICENSE +202 -0
- package/README.md +382 -0
- package/dist/camera/camera.d.ts +62 -0
- package/dist/camera/camera.d.ts.map +1 -0
- package/dist/camera/camera.js +155 -0
- package/dist/camera/camera.js.map +1 -0
- package/dist/camera/index.d.ts +18 -0
- package/dist/camera/index.d.ts.map +1 -0
- package/dist/camera/index.js +18 -0
- package/dist/camera/index.js.map +1 -0
- package/dist/config/config-types.d.ts +75 -0
- package/dist/config/config-types.d.ts.map +1 -0
- package/dist/config/config-types.generated.d.ts +495 -0
- package/dist/config/config-types.generated.d.ts.map +1 -0
- package/dist/config/config-types.generated.js +2 -0
- package/dist/config/config-types.generated.js.map +1 -0
- package/dist/config/config-types.js +175 -0
- package/dist/config/config-types.js.map +1 -0
- package/dist/config/index.d.ts +20 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +19 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/tjbot-config.d.ts +98 -0
- package/dist/config/tjbot-config.d.ts.map +1 -0
- package/dist/config/tjbot-config.js +309 -0
- package/dist/config/tjbot-config.js.map +1 -0
- package/dist/config/vendor/colors.yaml +61 -0
- package/dist/config/vendor/model-registry.yaml +275 -0
- package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
- package/dist/config/vendor/tjbot.default.toml +452 -0
- package/dist/led/index.d.ts +20 -0
- package/dist/led/index.d.ts.map +1 -0
- package/dist/led/index.js +20 -0
- package/dist/led/index.js.map +1 -0
- package/dist/led/led-common-anode.d.ts +38 -0
- package/dist/led/led-common-anode.d.ts.map +1 -0
- package/dist/led/led-common-anode.js +79 -0
- package/dist/led/led-common-anode.js.map +1 -0
- package/dist/led/led-neopixel-spi.d.ts +60 -0
- package/dist/led/led-neopixel-spi.d.ts.map +1 -0
- package/dist/led/led-neopixel-spi.js +216 -0
- package/dist/led/led-neopixel-spi.js.map +1 -0
- package/dist/led/led-neopixel-ws281x.js +186 -0
- package/dist/led/led-neopixel.d.ts +57 -0
- package/dist/led/led-neopixel.d.ts.map +1 -0
- package/dist/led/led-neopixel.js +235 -0
- package/dist/led/led-neopixel.js.map +1 -0
- package/dist/microphone/index.d.ts +18 -0
- package/dist/microphone/index.d.ts.map +1 -0
- package/dist/microphone/index.js +18 -0
- package/dist/microphone/index.js.map +1 -0
- package/dist/microphone/microphone.d.ts +65 -0
- package/dist/microphone/microphone.d.ts.map +1 -0
- package/dist/microphone/microphone.js +179 -0
- package/dist/microphone/microphone.js.map +1 -0
- package/dist/rpi-drivers/index.d.ts +22 -0
- package/dist/rpi-drivers/index.d.ts.map +1 -0
- package/dist/rpi-drivers/index.js +22 -0
- package/dist/rpi-drivers/index.js.map +1 -0
- package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
- package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi-detect.js +49 -0
- package/dist/rpi-drivers/rpi-detect.js.map +1 -0
- package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
- package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi-driver.js +261 -0
- package/dist/rpi-drivers/rpi-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
- package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi3-driver.js +145 -0
- package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
- package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi4-driver.js +101 -0
- package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
- package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
- package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
- package/dist/rpi-drivers/rpi5-driver.js +78 -0
- package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
- package/dist/servo/index.d.ts +19 -0
- package/dist/servo/index.d.ts.map +1 -0
- package/dist/servo/index.js +19 -0
- package/dist/servo/index.js.map +1 -0
- package/dist/servo/servo-constants.d.ts +33 -0
- package/dist/servo/servo-constants.d.ts.map +1 -0
- package/dist/servo/servo-constants.js +34 -0
- package/dist/servo/servo-constants.js.map +1 -0
- package/dist/servo/servo-lgpio.d.ts +82 -0
- package/dist/servo/servo-lgpio.d.ts.map +1 -0
- package/dist/servo/servo-lgpio.js +178 -0
- package/dist/servo/servo-lgpio.js.map +1 -0
- package/dist/speaker/audio-player.d.ts +30 -0
- package/dist/speaker/audio-player.d.ts.map +1 -0
- package/dist/speaker/audio-player.js +68 -0
- package/dist/speaker/audio-player.js.map +1 -0
- package/dist/speaker/index.d.ts +18 -0
- package/dist/speaker/index.d.ts.map +1 -0
- package/dist/speaker/index.js +18 -0
- package/dist/speaker/index.js.map +1 -0
- package/dist/speaker/speaker.d.ts +53 -0
- package/dist/speaker/speaker.d.ts.map +1 -0
- package/dist/speaker/speaker.js +125 -0
- package/dist/speaker/speaker.js.map +1 -0
- package/dist/stt/backends/azure-stt.d.ts +32 -0
- package/dist/stt/backends/azure-stt.d.ts.map +1 -0
- package/dist/stt/backends/azure-stt.js +227 -0
- package/dist/stt/backends/azure-stt.js.map +1 -0
- package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
- package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
- package/dist/stt/backends/google-cloud-stt.js +371 -0
- package/dist/stt/backends/google-cloud-stt.js.map +1 -0
- package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
- package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
- package/dist/stt/backends/ibm-watson-stt.js +190 -0
- package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
- package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
- package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
- package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
- package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
- package/dist/stt/index.d.ts +20 -0
- package/dist/stt/index.d.ts.map +1 -0
- package/dist/stt/index.js +21 -0
- package/dist/stt/index.js.map +1 -0
- package/dist/stt/stt-engine.d.ts +68 -0
- package/dist/stt/stt-engine.d.ts.map +1 -0
- package/dist/stt/stt-engine.js +99 -0
- package/dist/stt/stt-engine.js.map +1 -0
- package/dist/stt/stt-utils.d.ts +36 -0
- package/dist/stt/stt-utils.d.ts.map +1 -0
- package/dist/stt/stt-utils.js +112 -0
- package/dist/stt/stt-utils.js.map +1 -0
- package/dist/stt/stt.d.ts +52 -0
- package/dist/stt/stt.d.ts.map +1 -0
- package/dist/stt/stt.js +100 -0
- package/dist/stt/stt.js.map +1 -0
- package/dist/tjbot.d.ts +317 -0
- package/dist/tjbot.d.ts.map +1 -0
- package/dist/tjbot.js +736 -0
- package/dist/tjbot.js.map +1 -0
- package/dist/tts/backends/azure-tts.d.ts +30 -0
- package/dist/tts/backends/azure-tts.d.ts.map +1 -0
- package/dist/tts/backends/azure-tts.js +92 -0
- package/dist/tts/backends/azure-tts.js.map +1 -0
- package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
- package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
- package/dist/tts/backends/google-cloud-tts.js +116 -0
- package/dist/tts/backends/google-cloud-tts.js.map +1 -0
- package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
- package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
- package/dist/tts/backends/ibm-watson-tts.js +99 -0
- package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
- package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
- package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
- package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
- package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
- package/dist/tts/index.d.ts +19 -0
- package/dist/tts/index.d.ts.map +1 -0
- package/dist/tts/index.js +20 -0
- package/dist/tts/index.js.map +1 -0
- package/dist/tts/tts-engine.d.ts +67 -0
- package/dist/tts/tts-engine.d.ts.map +1 -0
- package/dist/tts/tts-engine.js +109 -0
- package/dist/tts/tts-engine.js.map +1 -0
- package/dist/tts/tts.d.ts +47 -0
- package/dist/tts/tts.d.ts.map +1 -0
- package/dist/tts/tts.js +101 -0
- package/dist/tts/tts.js.map +1 -0
- package/dist/utils/colors.d.ts +39 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +155 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/constants.d.ts +41 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +43 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/credentials.d.ts +43 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +121 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/errors.d.ts +26 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +32 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +25 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +23 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logging.d.ts +44 -0
- package/dist/utils/logging.d.ts.map +1 -0
- package/dist/utils/logging.js +113 -0
- package/dist/utils/logging.js.map +1 -0
- package/dist/utils/model-registry.d.ts +142 -0
- package/dist/utils/model-registry.d.ts.map +1 -0
- package/dist/utils/model-registry.js +391 -0
- package/dist/utils/model-registry.js.map +1 -0
- package/dist/utils/utils.d.ts +33 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +50 -0
- package/dist/utils/utils.js.map +1 -0
- package/dist/vision/backends/azure-vision.d.ts +33 -0
- package/dist/vision/backends/azure-vision.d.ts.map +1 -0
- package/dist/vision/backends/azure-vision.js +151 -0
- package/dist/vision/backends/azure-vision.js.map +1 -0
- package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
- package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
- package/dist/vision/backends/google-cloud-vision.js +193 -0
- package/dist/vision/backends/google-cloud-vision.js.map +1 -0
- package/dist/vision/backends/onnx.d.ts +116 -0
- package/dist/vision/backends/onnx.d.ts.map +1 -0
- package/dist/vision/backends/onnx.js +781 -0
- package/dist/vision/backends/onnx.js.map +1 -0
- package/dist/vision/index.d.ts +19 -0
- package/dist/vision/index.d.ts.map +1 -0
- package/dist/vision/index.js +20 -0
- package/dist/vision/index.js.map +1 -0
- package/dist/vision/vision-engine.d.ts +131 -0
- package/dist/vision/vision-engine.d.ts.map +1 -0
- package/dist/vision/vision-engine.js +97 -0
- package/dist/vision/vision-engine.js.map +1 -0
- package/dist/vision/vision.d.ts +48 -0
- package/dist/vision/vision.d.ts.map +1 -0
- package/dist/vision/vision.js +83 -0
- package/dist/vision/vision.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1,495 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verbosity level for TJBot logging.
|
|
3
|
+
*/
|
|
4
|
+
export type LogLevel = ("error" | "warning" | "warn" | "info" | "verbose" | "debug" | "silly");
|
|
5
|
+
/**
|
|
6
|
+
* Speech-to-text backend implementation.
|
|
7
|
+
*/
|
|
8
|
+
export type STTBackendType = ("none" | "local" | "ibm-watson-stt" | "google-cloud-stt" | "azure-stt");
|
|
9
|
+
/**
|
|
10
|
+
* Vision backend implementation.
|
|
11
|
+
*/
|
|
12
|
+
export type SeeBackendType = ("none" | "local" | "google-cloud-vision" | "azure-vision");
|
|
13
|
+
/**
|
|
14
|
+
* Text-to-speech backend implementation.
|
|
15
|
+
*/
|
|
16
|
+
export type TTSBackendType = ("none" | "local" | "ibm-watson-tts" | "google-cloud-tts" | "azure-tts");
|
|
17
|
+
/**
|
|
18
|
+
* Kind of model entry being registered.
|
|
19
|
+
*/
|
|
20
|
+
export type ModelEntryType = ("stt" | "tts" | "vad" | "vision.object-recognition" | "vision.classification" | "vision.face-detection" | "vision.image-description");
|
|
21
|
+
/**
|
|
22
|
+
* Settings for custom, on-device ML models.
|
|
23
|
+
*/
|
|
24
|
+
export type ModelsConfig = ModelEntry[];
|
|
25
|
+
/**
|
|
26
|
+
* Canonical schema for TJBot runtime configuration.
|
|
27
|
+
*/
|
|
28
|
+
export interface TJBotConfigSchema {
|
|
29
|
+
log?: LogConfig;
|
|
30
|
+
hardware?: HardwareConfig;
|
|
31
|
+
listen?: ListenConfig;
|
|
32
|
+
see?: SeeConfig;
|
|
33
|
+
shine?: ShineConfig;
|
|
34
|
+
speak?: SpeakConfig;
|
|
35
|
+
wave?: WaveConfig;
|
|
36
|
+
models?: ModelsConfig;
|
|
37
|
+
/**
|
|
38
|
+
* Free-form recipe-level configuration merged after TJBot defaults and user config.
|
|
39
|
+
*/
|
|
40
|
+
recipe?: {
|
|
41
|
+
[k: string]: unknown;
|
|
42
|
+
};
|
|
43
|
+
[k: string]: unknown;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Console logging configuration.
|
|
47
|
+
*/
|
|
48
|
+
export interface LogConfig {
|
|
49
|
+
level?: LogLevel;
|
|
50
|
+
[k: string]: unknown;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Hardware physically attached to the Raspberry Pi.
|
|
54
|
+
*/
|
|
55
|
+
export interface HardwareConfig {
|
|
56
|
+
/**
|
|
57
|
+
* Set to true when a speaker is connected and should be initialized.
|
|
58
|
+
*/
|
|
59
|
+
speaker?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Set to true when a microphone is connected and should be initialized.
|
|
62
|
+
*/
|
|
63
|
+
microphone?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Set to true when TJBot should initialize an LED output.
|
|
66
|
+
*/
|
|
67
|
+
led?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Set to true when TJBot should initialize the arm servo.
|
|
70
|
+
*/
|
|
71
|
+
servo?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Set to true when a camera is attached and vision features should initialize.
|
|
74
|
+
*/
|
|
75
|
+
camera?: boolean;
|
|
76
|
+
[k: string]: unknown;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Settings for audio capture and speech recognition.
|
|
80
|
+
*/
|
|
81
|
+
export interface ListenConfig {
|
|
82
|
+
/**
|
|
83
|
+
* ALSA capture device name. Empty uses the system default device.
|
|
84
|
+
*/
|
|
85
|
+
device?: string;
|
|
86
|
+
/**
|
|
87
|
+
* Capture sample rate in hertz.
|
|
88
|
+
*/
|
|
89
|
+
microphoneRate?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Number of microphone input channels.
|
|
92
|
+
*/
|
|
93
|
+
microphoneChannels?: number;
|
|
94
|
+
backend?: STTBackendConfig;
|
|
95
|
+
[k: string]: unknown;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Speech-to-text backend selection and backend-specific settings.
|
|
99
|
+
*/
|
|
100
|
+
export interface STTBackendConfig {
|
|
101
|
+
type: STTBackendType;
|
|
102
|
+
local?: STTBackendLocalConfig;
|
|
103
|
+
"ibm-watson-stt"?: STTBackendIBMWatsonConfig;
|
|
104
|
+
"google-cloud-stt"?: STTBackendGoogleCloudConfig;
|
|
105
|
+
"azure-stt"?: STTBackendAzureConfig;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Local speech-to-text backend configuration.
|
|
109
|
+
*/
|
|
110
|
+
export interface STTBackendLocalConfig {
|
|
111
|
+
/**
|
|
112
|
+
* Registry key of the local speech model.
|
|
113
|
+
*/
|
|
114
|
+
model?: string;
|
|
115
|
+
vad?: VADConfig;
|
|
116
|
+
[k: string]: unknown;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Voice activity detection settings for local speech recognition.
|
|
120
|
+
*/
|
|
121
|
+
export interface VADConfig {
|
|
122
|
+
/**
|
|
123
|
+
* Enables the VAD model before local transcription.
|
|
124
|
+
*/
|
|
125
|
+
enabled?: boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Registry key of the VAD model to load.
|
|
128
|
+
*/
|
|
129
|
+
model?: string;
|
|
130
|
+
[k: string]: unknown;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* IBM Watson speech-to-text backend configuration.
|
|
134
|
+
*/
|
|
135
|
+
export interface STTBackendIBMWatsonConfig {
|
|
136
|
+
/**
|
|
137
|
+
* IBM Watson STT model identifier.
|
|
138
|
+
*/
|
|
139
|
+
model?: string;
|
|
140
|
+
/**
|
|
141
|
+
* Seconds of silence before Watson closes the stream. Use -1 to disable.
|
|
142
|
+
*/
|
|
143
|
+
inactivityTimeout?: number;
|
|
144
|
+
/**
|
|
145
|
+
* Background audio suppression factor.
|
|
146
|
+
*/
|
|
147
|
+
backgroundAudioSuppression?: number;
|
|
148
|
+
/**
|
|
149
|
+
* Whether partial transcriptions should be emitted.
|
|
150
|
+
*/
|
|
151
|
+
interimResults?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* Path to the IBM credentials file.
|
|
154
|
+
*/
|
|
155
|
+
credentialsPath?: string;
|
|
156
|
+
[k: string]: unknown;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Google Cloud speech-to-text backend configuration.
|
|
160
|
+
*/
|
|
161
|
+
export interface STTBackendGoogleCloudConfig {
|
|
162
|
+
/**
|
|
163
|
+
* Path to the Google Cloud credentials file.
|
|
164
|
+
*/
|
|
165
|
+
credentialsPath?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Google Cloud STT model identifier.
|
|
168
|
+
*/
|
|
169
|
+
model?: string;
|
|
170
|
+
/**
|
|
171
|
+
* BCP-47 language code for transcription.
|
|
172
|
+
*/
|
|
173
|
+
languageCode?: string;
|
|
174
|
+
/**
|
|
175
|
+
* Google Cloud region to target.
|
|
176
|
+
*/
|
|
177
|
+
region?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Enables automatic punctuation in transcripts.
|
|
180
|
+
*/
|
|
181
|
+
enableAutomaticPunctuation?: boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Masks profane words in transcripts.
|
|
184
|
+
*/
|
|
185
|
+
profanityFilter?: boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Whether partial transcriptions should be emitted.
|
|
188
|
+
*/
|
|
189
|
+
interimResults?: boolean;
|
|
190
|
+
[k: string]: unknown;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Azure speech-to-text backend configuration.
|
|
194
|
+
*/
|
|
195
|
+
export interface STTBackendAzureConfig {
|
|
196
|
+
/**
|
|
197
|
+
* Azure speech recognition language. Empty uses the service default.
|
|
198
|
+
*/
|
|
199
|
+
language?: string;
|
|
200
|
+
/**
|
|
201
|
+
* Path to the Azure credentials file.
|
|
202
|
+
*/
|
|
203
|
+
credentialsPath?: string;
|
|
204
|
+
/**
|
|
205
|
+
* Whether partial transcriptions should be emitted.
|
|
206
|
+
*/
|
|
207
|
+
interimResults?: boolean;
|
|
208
|
+
[k: string]: unknown;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Settings for the camera and computer vision.
|
|
212
|
+
*/
|
|
213
|
+
export interface SeeConfig {
|
|
214
|
+
/**
|
|
215
|
+
* Requested capture resolution as [width, height].
|
|
216
|
+
*
|
|
217
|
+
|
|
218
|
+
*/
|
|
219
|
+
cameraResolution?: [number, number];
|
|
220
|
+
/**
|
|
221
|
+
* Flips captured frames vertically.
|
|
222
|
+
*/
|
|
223
|
+
verticalFlip?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Flips captured frames horizontally.
|
|
226
|
+
*/
|
|
227
|
+
horizontalFlip?: boolean;
|
|
228
|
+
/**
|
|
229
|
+
* Camera capture timeout in milliseconds.
|
|
230
|
+
*/
|
|
231
|
+
captureTimeout?: number;
|
|
232
|
+
/**
|
|
233
|
+
* Enables zero-shutter-lag capture when supported.
|
|
234
|
+
*/
|
|
235
|
+
zeroShutterLag?: boolean;
|
|
236
|
+
backend?: SeeBackendConfig;
|
|
237
|
+
[k: string]: unknown;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Vision backend selection and backend-specific settings.
|
|
241
|
+
*/
|
|
242
|
+
export interface SeeBackendConfig {
|
|
243
|
+
type: SeeBackendType;
|
|
244
|
+
local?: SeeBackendLocalConfig;
|
|
245
|
+
"google-cloud-vision"?: SeeBackendGoogleCloudConfig;
|
|
246
|
+
"azure-vision"?: SeeBackendAzureConfig;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Local ONNX-based vision backend configuration.
|
|
250
|
+
*/
|
|
251
|
+
export interface SeeBackendLocalConfig {
|
|
252
|
+
/**
|
|
253
|
+
* Registry key of the local object detection model.
|
|
254
|
+
*/
|
|
255
|
+
objectDetectionModel?: string;
|
|
256
|
+
/**
|
|
257
|
+
* Registry key of the local image classification model.
|
|
258
|
+
*/
|
|
259
|
+
imageClassificationModel?: string;
|
|
260
|
+
/**
|
|
261
|
+
* Registry key of the local face detection model.
|
|
262
|
+
*/
|
|
263
|
+
faceDetectionModel?: string;
|
|
264
|
+
/**
|
|
265
|
+
* Minimum confidence for object detection results.
|
|
266
|
+
*/
|
|
267
|
+
objectDetectionConfidence?: number;
|
|
268
|
+
/**
|
|
269
|
+
* Minimum confidence for image classification results.
|
|
270
|
+
*/
|
|
271
|
+
imageClassificationConfidence?: number;
|
|
272
|
+
/**
|
|
273
|
+
* Minimum confidence for face detection results.
|
|
274
|
+
*/
|
|
275
|
+
faceDetectionConfidence?: number;
|
|
276
|
+
[k: string]: unknown;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Google Cloud Vision backend configuration.
|
|
280
|
+
*/
|
|
281
|
+
export interface SeeBackendGoogleCloudConfig {
|
|
282
|
+
/**
|
|
283
|
+
* Path to the Google Cloud credentials file.
|
|
284
|
+
*/
|
|
285
|
+
credentialsPath?: string;
|
|
286
|
+
/**
|
|
287
|
+
* Minimum confidence for object localization results.
|
|
288
|
+
*/
|
|
289
|
+
objectDetectionConfidence?: number;
|
|
290
|
+
/**
|
|
291
|
+
* Minimum confidence for label detection results.
|
|
292
|
+
*/
|
|
293
|
+
imageClassificationConfidence?: number;
|
|
294
|
+
/**
|
|
295
|
+
* Minimum confidence for face detection results.
|
|
296
|
+
*/
|
|
297
|
+
faceDetectionConfidence?: number;
|
|
298
|
+
[k: string]: unknown;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Azure Vision backend configuration.
|
|
302
|
+
*/
|
|
303
|
+
export interface SeeBackendAzureConfig {
|
|
304
|
+
/**
|
|
305
|
+
* Path to the Azure credentials file.
|
|
306
|
+
*/
|
|
307
|
+
credentialsPath?: string;
|
|
308
|
+
/**
|
|
309
|
+
* Minimum confidence for object detection results.
|
|
310
|
+
*/
|
|
311
|
+
objectDetectionConfidence?: number;
|
|
312
|
+
/**
|
|
313
|
+
* Minimum confidence for image classification results.
|
|
314
|
+
*/
|
|
315
|
+
imageClassificationConfidence?: number;
|
|
316
|
+
[k: string]: unknown;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Settings for LED hardware.
|
|
320
|
+
*/
|
|
321
|
+
export interface ShineConfig {
|
|
322
|
+
/**
|
|
323
|
+
* Enables NeoPixel / WS281x LED support.
|
|
324
|
+
*/
|
|
325
|
+
hasNeopixelLED?: boolean;
|
|
326
|
+
/**
|
|
327
|
+
* Enables common-anode RGB LED support.
|
|
328
|
+
*/
|
|
329
|
+
hasCommonAnodeLED?: boolean;
|
|
330
|
+
neopixel?: LEDNeopixelConfig;
|
|
331
|
+
commonanode?: LEDCommonAnodeConfig;
|
|
332
|
+
[k: string]: unknown;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* WS281x / NeoPixel LED configuration.
|
|
336
|
+
*/
|
|
337
|
+
export interface LEDNeopixelConfig {
|
|
338
|
+
/**
|
|
339
|
+
* GPIO pin number used for the LED data signal.
|
|
340
|
+
*/
|
|
341
|
+
gpioPin?: number;
|
|
342
|
+
/**
|
|
343
|
+
* SPI interface path used when driving LEDs over SPI.
|
|
344
|
+
*/
|
|
345
|
+
spiInterface?: string;
|
|
346
|
+
/**
|
|
347
|
+
* Whether the LED expects GRB byte ordering.
|
|
348
|
+
*/
|
|
349
|
+
useGRBFormat?: boolean;
|
|
350
|
+
[k: string]: unknown;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Common-anode RGB LED configuration.
|
|
354
|
+
*/
|
|
355
|
+
export interface LEDCommonAnodeConfig {
|
|
356
|
+
/**
|
|
357
|
+
* GPIO pin for the red channel.
|
|
358
|
+
*/
|
|
359
|
+
redPin?: number;
|
|
360
|
+
/**
|
|
361
|
+
* GPIO pin for the green channel.
|
|
362
|
+
*/
|
|
363
|
+
greenPin?: number;
|
|
364
|
+
/**
|
|
365
|
+
* GPIO pin for the blue channel.
|
|
366
|
+
*/
|
|
367
|
+
bluePin?: number;
|
|
368
|
+
[k: string]: unknown;
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Settings for audio playback and text-to-speech.
|
|
372
|
+
*/
|
|
373
|
+
export interface SpeakConfig {
|
|
374
|
+
/**
|
|
375
|
+
* ALSA playback device name. Empty uses the system default device.
|
|
376
|
+
*/
|
|
377
|
+
device?: string;
|
|
378
|
+
backend?: TTSBackendConfig;
|
|
379
|
+
[k: string]: unknown;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Text-to-speech backend selection and backend-specific settings.
|
|
383
|
+
*/
|
|
384
|
+
export interface TTSBackendConfig {
|
|
385
|
+
type: TTSBackendType;
|
|
386
|
+
local?: TTSBackendLocalConfig;
|
|
387
|
+
"ibm-watson-tts"?: TTSBackendIBMWatsonConfig;
|
|
388
|
+
"google-cloud-tts"?: TTSBackendGoogleCloudConfig;
|
|
389
|
+
"azure-tts"?: TTSBackendAzureConfig;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Local text-to-speech backend configuration.
|
|
393
|
+
*/
|
|
394
|
+
export interface TTSBackendLocalConfig {
|
|
395
|
+
/**
|
|
396
|
+
* Registry key of the local voice model.
|
|
397
|
+
*/
|
|
398
|
+
model?: string;
|
|
399
|
+
[k: string]: unknown;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* IBM Watson text-to-speech backend configuration.
|
|
403
|
+
*/
|
|
404
|
+
export interface TTSBackendIBMWatsonConfig {
|
|
405
|
+
/**
|
|
406
|
+
* Path to the IBM credentials file.
|
|
407
|
+
*/
|
|
408
|
+
credentialsPath?: string;
|
|
409
|
+
/**
|
|
410
|
+
* IBM Watson voice identifier.
|
|
411
|
+
*/
|
|
412
|
+
voice?: string;
|
|
413
|
+
[k: string]: unknown;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Google Cloud text-to-speech backend configuration.
|
|
417
|
+
*/
|
|
418
|
+
export interface TTSBackendGoogleCloudConfig {
|
|
419
|
+
/**
|
|
420
|
+
* Path to the Google Cloud credentials file.
|
|
421
|
+
*/
|
|
422
|
+
credentialsPath?: string;
|
|
423
|
+
/**
|
|
424
|
+
* BCP-47 language code for synthesis.
|
|
425
|
+
*/
|
|
426
|
+
languageCode?: string;
|
|
427
|
+
/**
|
|
428
|
+
* Google Cloud voice identifier.
|
|
429
|
+
*/
|
|
430
|
+
voice?: string;
|
|
431
|
+
[k: string]: unknown;
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* Azure text-to-speech backend configuration.
|
|
435
|
+
*/
|
|
436
|
+
export interface TTSBackendAzureConfig {
|
|
437
|
+
/**
|
|
438
|
+
* Path to the Azure credentials file.
|
|
439
|
+
*/
|
|
440
|
+
credentialsPath?: string;
|
|
441
|
+
/**
|
|
442
|
+
* Azure voice identifier.
|
|
443
|
+
*/
|
|
444
|
+
voice?: string;
|
|
445
|
+
[k: string]: unknown;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Settings for servo hardware.
|
|
449
|
+
*/
|
|
450
|
+
export interface WaveConfig {
|
|
451
|
+
/**
|
|
452
|
+
* GPIO pin number connected to the servo PWM input.
|
|
453
|
+
*/
|
|
454
|
+
servoPin?: number;
|
|
455
|
+
[k: string]: unknown;
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Custom model registry entry.
|
|
459
|
+
*/
|
|
460
|
+
export interface ModelEntry {
|
|
461
|
+
type: ModelEntryType;
|
|
462
|
+
/**
|
|
463
|
+
* Unique key used to reference the model in config.
|
|
464
|
+
*/
|
|
465
|
+
key: string;
|
|
466
|
+
/**
|
|
467
|
+
* Human-readable model name.
|
|
468
|
+
*/
|
|
469
|
+
label: string;
|
|
470
|
+
/**
|
|
471
|
+
* URL or file URI where the model archive can be retrieved.
|
|
472
|
+
*/
|
|
473
|
+
url: string;
|
|
474
|
+
/**
|
|
475
|
+
* Folder name to use after extracting the model.
|
|
476
|
+
*/
|
|
477
|
+
folder?: string;
|
|
478
|
+
/**
|
|
479
|
+
* Model subtype used by the vision runtime.
|
|
480
|
+
*/
|
|
481
|
+
kind?: string;
|
|
482
|
+
/**
|
|
483
|
+
* Optional tensor input shape for ONNX vision models.
|
|
484
|
+
*/
|
|
485
|
+
inputShape?: number[];
|
|
486
|
+
/**
|
|
487
|
+
* URL or file URI for a companion labels file.
|
|
488
|
+
*/
|
|
489
|
+
labelUrl?: string;
|
|
490
|
+
/**
|
|
491
|
+
* Files that must exist after the model is installed.
|
|
492
|
+
*/
|
|
493
|
+
required?: string[];
|
|
494
|
+
}
|
|
495
|
+
//# sourceMappingURL=config-types.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.generated.d.ts","sourceRoot":"","sources":["../../src/config/config-types.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.generated.js","sourceRoot":"","sources":["../../src/config/config-types.generated.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 IBM Corp. All Rights Reserved.
|
|
3
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import fs from 'fs';
|
|
18
|
+
import { createRequire } from 'module';
|
|
19
|
+
import yaml from 'js-yaml';
|
|
20
|
+
export const STT_BACKEND_TYPES = Object.freeze([
|
|
21
|
+
'none',
|
|
22
|
+
'local',
|
|
23
|
+
'ibm-watson-stt',
|
|
24
|
+
'google-cloud-stt',
|
|
25
|
+
'azure-stt',
|
|
26
|
+
]);
|
|
27
|
+
export const TTS_BACKEND_TYPES = Object.freeze([
|
|
28
|
+
'none',
|
|
29
|
+
'local',
|
|
30
|
+
'ibm-watson-tts',
|
|
31
|
+
'google-cloud-tts',
|
|
32
|
+
'azure-tts',
|
|
33
|
+
]);
|
|
34
|
+
export const SEE_BACKEND_TYPES = Object.freeze([
|
|
35
|
+
'none',
|
|
36
|
+
'local',
|
|
37
|
+
'google-cloud-vision',
|
|
38
|
+
'azure-vision',
|
|
39
|
+
]);
|
|
40
|
+
function loadConfigSchema() {
|
|
41
|
+
const schemaUrl = new URL('./vendor/tjbot-config.schema.yaml', import.meta.url);
|
|
42
|
+
const schemaSource = fs.readFileSync(schemaUrl, 'utf8');
|
|
43
|
+
const loadedSchema = yaml.load(schemaSource);
|
|
44
|
+
if (!loadedSchema || typeof loadedSchema !== 'object' || Array.isArray(loadedSchema)) {
|
|
45
|
+
throw new Error('TJBot config schema is invalid or empty');
|
|
46
|
+
}
|
|
47
|
+
return loadedSchema;
|
|
48
|
+
}
|
|
49
|
+
const configSchema = loadConfigSchema();
|
|
50
|
+
const require = createRequire(import.meta.url);
|
|
51
|
+
const Ajv = require('ajv').default;
|
|
52
|
+
const addFormats = require('ajv-formats').default;
|
|
53
|
+
const ajv = new Ajv({
|
|
54
|
+
allErrors: true,
|
|
55
|
+
allowUnionTypes: true,
|
|
56
|
+
strict: false,
|
|
57
|
+
});
|
|
58
|
+
addFormats(ajv);
|
|
59
|
+
const compiledTJBotConfigValidator = ajv.compile(configSchema);
|
|
60
|
+
function formatValidationErrors(errors) {
|
|
61
|
+
return ajv.errorsText(errors, { separator: '; ' });
|
|
62
|
+
}
|
|
63
|
+
function createEnumParser(values, label) {
|
|
64
|
+
return {
|
|
65
|
+
parse(value) {
|
|
66
|
+
const result = this.safeParse(value);
|
|
67
|
+
if (!result.success) {
|
|
68
|
+
throw result.error;
|
|
69
|
+
}
|
|
70
|
+
return result.data;
|
|
71
|
+
},
|
|
72
|
+
safeParse(value) {
|
|
73
|
+
if (typeof value === 'string' && values.includes(value)) {
|
|
74
|
+
return { success: true, data: value };
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
success: false,
|
|
78
|
+
error: new Error(`Invalid ${label}. Expected one of: ${values.join(', ')}`),
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function createValidatorParser(validate, label) {
|
|
84
|
+
return {
|
|
85
|
+
parse(value) {
|
|
86
|
+
const result = this.safeParse(value);
|
|
87
|
+
if (!result.success) {
|
|
88
|
+
throw result.error;
|
|
89
|
+
}
|
|
90
|
+
return result.data;
|
|
91
|
+
},
|
|
92
|
+
safeParse(value) {
|
|
93
|
+
if (validate(value)) {
|
|
94
|
+
return { success: true, data: value };
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
success: false,
|
|
98
|
+
error: new Error(`Invalid ${label}: ${formatValidationErrors(validate.errors)}`),
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export function getConfigSchema() {
|
|
104
|
+
return configSchema;
|
|
105
|
+
}
|
|
106
|
+
export function isSTTBackendType(value) {
|
|
107
|
+
return typeof value === 'string' && STT_BACKEND_TYPES.includes(value);
|
|
108
|
+
}
|
|
109
|
+
export function isTTSBackendType(value) {
|
|
110
|
+
return typeof value === 'string' && TTS_BACKEND_TYPES.includes(value);
|
|
111
|
+
}
|
|
112
|
+
export function isSeeBackendType(value) {
|
|
113
|
+
return typeof value === 'string' && SEE_BACKEND_TYPES.includes(value);
|
|
114
|
+
}
|
|
115
|
+
export const sttBackendTypeSchema = createEnumParser(STT_BACKEND_TYPES, 'STT backend type');
|
|
116
|
+
export const ttsBackendTypeSchema = createEnumParser(TTS_BACKEND_TYPES, 'TTS backend type');
|
|
117
|
+
export const seeBackendTypeSchema = createEnumParser(SEE_BACKEND_TYPES, 'vision backend type');
|
|
118
|
+
export const tjbotConfigSchema = createValidatorParser(compiledTJBotConfigValidator, 'TJBot configuration');
|
|
119
|
+
export const validateTJBotConfig = compiledTJBotConfigValidator;
|
|
120
|
+
export function getSTTBackendConfig(backendConfig, backendType) {
|
|
121
|
+
if (!backendConfig) {
|
|
122
|
+
return {};
|
|
123
|
+
}
|
|
124
|
+
switch (backendType) {
|
|
125
|
+
case 'none':
|
|
126
|
+
return {};
|
|
127
|
+
case 'local':
|
|
128
|
+
return (backendConfig.local ?? {});
|
|
129
|
+
case 'ibm-watson-stt':
|
|
130
|
+
return (backendConfig['ibm-watson-stt'] ?? {});
|
|
131
|
+
case 'google-cloud-stt':
|
|
132
|
+
return (backendConfig['google-cloud-stt'] ?? {});
|
|
133
|
+
case 'azure-stt':
|
|
134
|
+
return (backendConfig['azure-stt'] ?? {});
|
|
135
|
+
default:
|
|
136
|
+
return {};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export function getTTSBackendConfig(backendConfig, backendType) {
|
|
140
|
+
if (!backendConfig) {
|
|
141
|
+
return {};
|
|
142
|
+
}
|
|
143
|
+
switch (backendType) {
|
|
144
|
+
case 'none':
|
|
145
|
+
return {};
|
|
146
|
+
case 'local':
|
|
147
|
+
return (backendConfig.local ?? {});
|
|
148
|
+
case 'ibm-watson-tts':
|
|
149
|
+
return (backendConfig['ibm-watson-tts'] ?? {});
|
|
150
|
+
case 'google-cloud-tts':
|
|
151
|
+
return (backendConfig['google-cloud-tts'] ?? {});
|
|
152
|
+
case 'azure-tts':
|
|
153
|
+
return (backendConfig['azure-tts'] ?? {});
|
|
154
|
+
default:
|
|
155
|
+
return {};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
export function getSeeBackendConfig(backendConfig, backendType) {
|
|
159
|
+
if (!backendConfig) {
|
|
160
|
+
return {};
|
|
161
|
+
}
|
|
162
|
+
switch (backendType) {
|
|
163
|
+
case 'none':
|
|
164
|
+
return {};
|
|
165
|
+
case 'local':
|
|
166
|
+
return (backendConfig.local ?? {});
|
|
167
|
+
case 'google-cloud-vision':
|
|
168
|
+
return (backendConfig['google-cloud-vision'] ?? {});
|
|
169
|
+
case 'azure-vision':
|
|
170
|
+
return (backendConfig['azure-vision'] ?? {});
|
|
171
|
+
default:
|
|
172
|
+
return {};
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=config-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../src/config/config-types.ts"],"names":[],"mappings":"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"}
|