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.
Files changed (224) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +382 -0
  3. package/dist/camera/camera.d.ts +62 -0
  4. package/dist/camera/camera.d.ts.map +1 -0
  5. package/dist/camera/camera.js +155 -0
  6. package/dist/camera/camera.js.map +1 -0
  7. package/dist/camera/index.d.ts +18 -0
  8. package/dist/camera/index.d.ts.map +1 -0
  9. package/dist/camera/index.js +18 -0
  10. package/dist/camera/index.js.map +1 -0
  11. package/dist/config/config-types.d.ts +75 -0
  12. package/dist/config/config-types.d.ts.map +1 -0
  13. package/dist/config/config-types.generated.d.ts +495 -0
  14. package/dist/config/config-types.generated.d.ts.map +1 -0
  15. package/dist/config/config-types.generated.js +2 -0
  16. package/dist/config/config-types.generated.js.map +1 -0
  17. package/dist/config/config-types.js +175 -0
  18. package/dist/config/config-types.js.map +1 -0
  19. package/dist/config/index.d.ts +20 -0
  20. package/dist/config/index.d.ts.map +1 -0
  21. package/dist/config/index.js +19 -0
  22. package/dist/config/index.js.map +1 -0
  23. package/dist/config/tjbot-config.d.ts +98 -0
  24. package/dist/config/tjbot-config.d.ts.map +1 -0
  25. package/dist/config/tjbot-config.js +309 -0
  26. package/dist/config/tjbot-config.js.map +1 -0
  27. package/dist/config/vendor/colors.yaml +61 -0
  28. package/dist/config/vendor/model-registry.yaml +275 -0
  29. package/dist/config/vendor/tjbot-config.schema.yaml +792 -0
  30. package/dist/config/vendor/tjbot.default.toml +452 -0
  31. package/dist/led/index.d.ts +20 -0
  32. package/dist/led/index.d.ts.map +1 -0
  33. package/dist/led/index.js +20 -0
  34. package/dist/led/index.js.map +1 -0
  35. package/dist/led/led-common-anode.d.ts +38 -0
  36. package/dist/led/led-common-anode.d.ts.map +1 -0
  37. package/dist/led/led-common-anode.js +79 -0
  38. package/dist/led/led-common-anode.js.map +1 -0
  39. package/dist/led/led-neopixel-spi.d.ts +60 -0
  40. package/dist/led/led-neopixel-spi.d.ts.map +1 -0
  41. package/dist/led/led-neopixel-spi.js +216 -0
  42. package/dist/led/led-neopixel-spi.js.map +1 -0
  43. package/dist/led/led-neopixel-ws281x.js +186 -0
  44. package/dist/led/led-neopixel.d.ts +57 -0
  45. package/dist/led/led-neopixel.d.ts.map +1 -0
  46. package/dist/led/led-neopixel.js +235 -0
  47. package/dist/led/led-neopixel.js.map +1 -0
  48. package/dist/microphone/index.d.ts +18 -0
  49. package/dist/microphone/index.d.ts.map +1 -0
  50. package/dist/microphone/index.js +18 -0
  51. package/dist/microphone/index.js.map +1 -0
  52. package/dist/microphone/microphone.d.ts +65 -0
  53. package/dist/microphone/microphone.d.ts.map +1 -0
  54. package/dist/microphone/microphone.js +179 -0
  55. package/dist/microphone/microphone.js.map +1 -0
  56. package/dist/rpi-drivers/index.d.ts +22 -0
  57. package/dist/rpi-drivers/index.d.ts.map +1 -0
  58. package/dist/rpi-drivers/index.js +22 -0
  59. package/dist/rpi-drivers/index.js.map +1 -0
  60. package/dist/rpi-drivers/rpi-detect.d.ts +24 -0
  61. package/dist/rpi-drivers/rpi-detect.d.ts.map +1 -0
  62. package/dist/rpi-drivers/rpi-detect.js +49 -0
  63. package/dist/rpi-drivers/rpi-detect.js.map +1 -0
  64. package/dist/rpi-drivers/rpi-driver.d.ts +116 -0
  65. package/dist/rpi-drivers/rpi-driver.d.ts.map +1 -0
  66. package/dist/rpi-drivers/rpi-driver.js +261 -0
  67. package/dist/rpi-drivers/rpi-driver.js.map +1 -0
  68. package/dist/rpi-drivers/rpi3-driver.d.ts +47 -0
  69. package/dist/rpi-drivers/rpi3-driver.d.ts.map +1 -0
  70. package/dist/rpi-drivers/rpi3-driver.js +145 -0
  71. package/dist/rpi-drivers/rpi3-driver.js.map +1 -0
  72. package/dist/rpi-drivers/rpi4-driver.d.ts +35 -0
  73. package/dist/rpi-drivers/rpi4-driver.d.ts.map +1 -0
  74. package/dist/rpi-drivers/rpi4-driver.js +101 -0
  75. package/dist/rpi-drivers/rpi4-driver.js.map +1 -0
  76. package/dist/rpi-drivers/rpi5-driver.d.ts +33 -0
  77. package/dist/rpi-drivers/rpi5-driver.d.ts.map +1 -0
  78. package/dist/rpi-drivers/rpi5-driver.js +78 -0
  79. package/dist/rpi-drivers/rpi5-driver.js.map +1 -0
  80. package/dist/servo/index.d.ts +19 -0
  81. package/dist/servo/index.d.ts.map +1 -0
  82. package/dist/servo/index.js +19 -0
  83. package/dist/servo/index.js.map +1 -0
  84. package/dist/servo/servo-constants.d.ts +33 -0
  85. package/dist/servo/servo-constants.d.ts.map +1 -0
  86. package/dist/servo/servo-constants.js +34 -0
  87. package/dist/servo/servo-constants.js.map +1 -0
  88. package/dist/servo/servo-lgpio.d.ts +82 -0
  89. package/dist/servo/servo-lgpio.d.ts.map +1 -0
  90. package/dist/servo/servo-lgpio.js +178 -0
  91. package/dist/servo/servo-lgpio.js.map +1 -0
  92. package/dist/speaker/audio-player.d.ts +30 -0
  93. package/dist/speaker/audio-player.d.ts.map +1 -0
  94. package/dist/speaker/audio-player.js +68 -0
  95. package/dist/speaker/audio-player.js.map +1 -0
  96. package/dist/speaker/index.d.ts +18 -0
  97. package/dist/speaker/index.d.ts.map +1 -0
  98. package/dist/speaker/index.js +18 -0
  99. package/dist/speaker/index.js.map +1 -0
  100. package/dist/speaker/speaker.d.ts +53 -0
  101. package/dist/speaker/speaker.d.ts.map +1 -0
  102. package/dist/speaker/speaker.js +125 -0
  103. package/dist/speaker/speaker.js.map +1 -0
  104. package/dist/stt/backends/azure-stt.d.ts +32 -0
  105. package/dist/stt/backends/azure-stt.d.ts.map +1 -0
  106. package/dist/stt/backends/azure-stt.js +227 -0
  107. package/dist/stt/backends/azure-stt.js.map +1 -0
  108. package/dist/stt/backends/google-cloud-stt.d.ts +31 -0
  109. package/dist/stt/backends/google-cloud-stt.d.ts.map +1 -0
  110. package/dist/stt/backends/google-cloud-stt.js +371 -0
  111. package/dist/stt/backends/google-cloud-stt.js.map +1 -0
  112. package/dist/stt/backends/ibm-watson-stt.d.ts +32 -0
  113. package/dist/stt/backends/ibm-watson-stt.d.ts.map +1 -0
  114. package/dist/stt/backends/ibm-watson-stt.js +190 -0
  115. package/dist/stt/backends/ibm-watson-stt.js.map +1 -0
  116. package/dist/stt/backends/sherpa-onnx-stt.d.ts +117 -0
  117. package/dist/stt/backends/sherpa-onnx-stt.d.ts.map +1 -0
  118. package/dist/stt/backends/sherpa-onnx-stt.js +694 -0
  119. package/dist/stt/backends/sherpa-onnx-stt.js.map +1 -0
  120. package/dist/stt/index.d.ts +20 -0
  121. package/dist/stt/index.d.ts.map +1 -0
  122. package/dist/stt/index.js +21 -0
  123. package/dist/stt/index.js.map +1 -0
  124. package/dist/stt/stt-engine.d.ts +68 -0
  125. package/dist/stt/stt-engine.d.ts.map +1 -0
  126. package/dist/stt/stt-engine.js +99 -0
  127. package/dist/stt/stt-engine.js.map +1 -0
  128. package/dist/stt/stt-utils.d.ts +36 -0
  129. package/dist/stt/stt-utils.d.ts.map +1 -0
  130. package/dist/stt/stt-utils.js +112 -0
  131. package/dist/stt/stt-utils.js.map +1 -0
  132. package/dist/stt/stt.d.ts +52 -0
  133. package/dist/stt/stt.d.ts.map +1 -0
  134. package/dist/stt/stt.js +100 -0
  135. package/dist/stt/stt.js.map +1 -0
  136. package/dist/tjbot.d.ts +317 -0
  137. package/dist/tjbot.d.ts.map +1 -0
  138. package/dist/tjbot.js +736 -0
  139. package/dist/tjbot.js.map +1 -0
  140. package/dist/tts/backends/azure-tts.d.ts +30 -0
  141. package/dist/tts/backends/azure-tts.d.ts.map +1 -0
  142. package/dist/tts/backends/azure-tts.js +92 -0
  143. package/dist/tts/backends/azure-tts.js.map +1 -0
  144. package/dist/tts/backends/google-cloud-tts.d.ts +38 -0
  145. package/dist/tts/backends/google-cloud-tts.d.ts.map +1 -0
  146. package/dist/tts/backends/google-cloud-tts.js +116 -0
  147. package/dist/tts/backends/google-cloud-tts.js.map +1 -0
  148. package/dist/tts/backends/ibm-watson-tts.d.ts +42 -0
  149. package/dist/tts/backends/ibm-watson-tts.d.ts.map +1 -0
  150. package/dist/tts/backends/ibm-watson-tts.js +99 -0
  151. package/dist/tts/backends/ibm-watson-tts.js.map +1 -0
  152. package/dist/tts/backends/sherpa-onnx-tts.d.ts +80 -0
  153. package/dist/tts/backends/sherpa-onnx-tts.d.ts.map +1 -0
  154. package/dist/tts/backends/sherpa-onnx-tts.js +237 -0
  155. package/dist/tts/backends/sherpa-onnx-tts.js.map +1 -0
  156. package/dist/tts/index.d.ts +19 -0
  157. package/dist/tts/index.d.ts.map +1 -0
  158. package/dist/tts/index.js +20 -0
  159. package/dist/tts/index.js.map +1 -0
  160. package/dist/tts/tts-engine.d.ts +67 -0
  161. package/dist/tts/tts-engine.d.ts.map +1 -0
  162. package/dist/tts/tts-engine.js +109 -0
  163. package/dist/tts/tts-engine.js.map +1 -0
  164. package/dist/tts/tts.d.ts +47 -0
  165. package/dist/tts/tts.d.ts.map +1 -0
  166. package/dist/tts/tts.js +101 -0
  167. package/dist/tts/tts.js.map +1 -0
  168. package/dist/utils/colors.d.ts +39 -0
  169. package/dist/utils/colors.d.ts.map +1 -0
  170. package/dist/utils/colors.js +155 -0
  171. package/dist/utils/colors.js.map +1 -0
  172. package/dist/utils/constants.d.ts +41 -0
  173. package/dist/utils/constants.d.ts.map +1 -0
  174. package/dist/utils/constants.js +43 -0
  175. package/dist/utils/constants.js.map +1 -0
  176. package/dist/utils/credentials.d.ts +43 -0
  177. package/dist/utils/credentials.d.ts.map +1 -0
  178. package/dist/utils/credentials.js +121 -0
  179. package/dist/utils/credentials.js.map +1 -0
  180. package/dist/utils/errors.d.ts +26 -0
  181. package/dist/utils/errors.d.ts.map +1 -0
  182. package/dist/utils/errors.js +32 -0
  183. package/dist/utils/errors.js.map +1 -0
  184. package/dist/utils/index.d.ts +25 -0
  185. package/dist/utils/index.d.ts.map +1 -0
  186. package/dist/utils/index.js +23 -0
  187. package/dist/utils/index.js.map +1 -0
  188. package/dist/utils/logging.d.ts +44 -0
  189. package/dist/utils/logging.d.ts.map +1 -0
  190. package/dist/utils/logging.js +113 -0
  191. package/dist/utils/logging.js.map +1 -0
  192. package/dist/utils/model-registry.d.ts +142 -0
  193. package/dist/utils/model-registry.d.ts.map +1 -0
  194. package/dist/utils/model-registry.js +391 -0
  195. package/dist/utils/model-registry.js.map +1 -0
  196. package/dist/utils/utils.d.ts +33 -0
  197. package/dist/utils/utils.d.ts.map +1 -0
  198. package/dist/utils/utils.js +50 -0
  199. package/dist/utils/utils.js.map +1 -0
  200. package/dist/vision/backends/azure-vision.d.ts +33 -0
  201. package/dist/vision/backends/azure-vision.d.ts.map +1 -0
  202. package/dist/vision/backends/azure-vision.js +151 -0
  203. package/dist/vision/backends/azure-vision.js.map +1 -0
  204. package/dist/vision/backends/google-cloud-vision.d.ts +32 -0
  205. package/dist/vision/backends/google-cloud-vision.d.ts.map +1 -0
  206. package/dist/vision/backends/google-cloud-vision.js +193 -0
  207. package/dist/vision/backends/google-cloud-vision.js.map +1 -0
  208. package/dist/vision/backends/onnx.d.ts +116 -0
  209. package/dist/vision/backends/onnx.d.ts.map +1 -0
  210. package/dist/vision/backends/onnx.js +781 -0
  211. package/dist/vision/backends/onnx.js.map +1 -0
  212. package/dist/vision/index.d.ts +19 -0
  213. package/dist/vision/index.d.ts.map +1 -0
  214. package/dist/vision/index.js +20 -0
  215. package/dist/vision/index.js.map +1 -0
  216. package/dist/vision/vision-engine.d.ts +131 -0
  217. package/dist/vision/vision-engine.d.ts.map +1 -0
  218. package/dist/vision/vision-engine.js +97 -0
  219. package/dist/vision/vision-engine.js.map +1 -0
  220. package/dist/vision/vision.d.ts +48 -0
  221. package/dist/vision/vision.d.ts.map +1 -0
  222. package/dist/vision/vision.js +83 -0
  223. package/dist/vision/vision.js.map +1 -0
  224. package/package.json +124 -0
@@ -0,0 +1,155 @@
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 { execFile } from 'child_process';
18
+ import temp from 'temp';
19
+ import { TJBotError } from '../utils/index.js';
20
+ import { getLogger } from '../utils/logging.js';
21
+ const logger = getLogger(import.meta.url);
22
+ /**
23
+ * Camera controller for TJBot
24
+ * Handles camera initialization and photo capture using rpi-cam-lib
25
+ */
26
+ export class CameraController {
27
+ resolution;
28
+ verticalFlip;
29
+ horizontalFlip;
30
+ captureTimeout;
31
+ zeroShutterLag;
32
+ constructor() {
33
+ this.resolution = [1920, 1080];
34
+ this.verticalFlip = false;
35
+ this.horizontalFlip = false;
36
+ this.captureTimeout = 500;
37
+ this.zeroShutterLag = false;
38
+ }
39
+ /**
40
+ * Initialize the camera with configuration
41
+ * @param resolution Camera resolution as [width, height]
42
+ * @param verticalFlip Whether to vertically flip the image
43
+ * @param horizontalFlip Whether to horizontally flip the image
44
+ * @param captureTimeout Timeout in milliseconds before capturing (default: 500)
45
+ * @param zeroShutterLag Enable zero shutter lag mode (default: false)
46
+ */
47
+ initialize(resolution, verticalFlip, horizontalFlip, captureTimeout = 500, zeroShutterLag = false) {
48
+ this.resolution = resolution;
49
+ this.verticalFlip = verticalFlip;
50
+ this.horizontalFlip = horizontalFlip;
51
+ this.captureTimeout = captureTimeout;
52
+ this.zeroShutterLag = zeroShutterLag;
53
+ logger.debug(`initialized camera with config:
54
+ resolution: ${resolution[0]}x${resolution[1]}
55
+ verticalFlip: ${verticalFlip}
56
+ horizontalFlip: ${horizontalFlip}
57
+ captureTimeout: ${captureTimeout}ms
58
+ zeroShutterLag: ${zeroShutterLag}`);
59
+ }
60
+ /**
61
+ * Build rpicam-still command arguments
62
+ * @param outputPath Output path or '-' for stdout
63
+ * @param encoding Optional encoding format (e.g., 'jpg')
64
+ * @returns Array of command-line arguments
65
+ */
66
+ buildCameraArgs(outputPath, encoding) {
67
+ const args = [
68
+ '--output',
69
+ outputPath,
70
+ '--width',
71
+ this.resolution[0].toString(),
72
+ '--height',
73
+ this.resolution[1].toString(),
74
+ '--nopreview',
75
+ '--camera',
76
+ '0',
77
+ ];
78
+ if (encoding) {
79
+ args.push('--encoding', encoding);
80
+ }
81
+ if (this.verticalFlip)
82
+ args.push('--vflip');
83
+ if (this.horizontalFlip)
84
+ args.push('--hflip');
85
+ // Add timeout argument
86
+ if (this.captureTimeout === 0) {
87
+ args.push('--immediate');
88
+ }
89
+ else {
90
+ args.push('--timeout', this.captureTimeout.toString());
91
+ }
92
+ // Add zero shutter lag if enabled
93
+ if (this.zeroShutterLag) {
94
+ args.push('--zsl');
95
+ }
96
+ logger.debug(`built camera args:
97
+ ${args.join(' ')}`);
98
+ return args;
99
+ }
100
+ /**
101
+ * Capture a photo by invoking rpicam-still via child_process
102
+ * @param atPath Optional path to save the photo. If not provided, a temporary file will be used.
103
+ * @returns Path to the saved photo
104
+ * @throws TJBotError if the camera command fails
105
+ */
106
+ async capturePhoto(atPath) {
107
+ const photoPath = atPath ??
108
+ temp.path({
109
+ prefix: 'tjbot',
110
+ suffix: '.jpg',
111
+ });
112
+ logger.verbose(`Capturing image at path: ${photoPath}`);
113
+ const args = this.buildCameraArgs(photoPath);
114
+ return new Promise((resolve, reject) => {
115
+ execFile('rpicam-still', args, (error, stdout, stderr) => {
116
+ if (error) {
117
+ logger.error(`rpicam-still error: ${stderr || error.message}`);
118
+ reject(new TJBotError(stderr || error.message));
119
+ }
120
+ else {
121
+ logger.debug(`rpicam-still stdout: ${stdout}`);
122
+ resolve(photoPath);
123
+ }
124
+ });
125
+ });
126
+ }
127
+ /**
128
+ * Capture a photo and return it as a Buffer
129
+ * @returns Promise that resolves to a Buffer containing the photo data
130
+ * @throws TJBotError if the camera capture fails
131
+ */
132
+ async capturePhotoBuffer() {
133
+ logger.verbose('Capturing image to buffer');
134
+ const args = this.buildCameraArgs('-', 'jpg');
135
+ return new Promise((resolve, reject) => {
136
+ execFile('rpicam-still', args, { encoding: 'buffer', maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => {
137
+ if (error) {
138
+ logger.error(`rpicam-still error: ${stderr?.toString() || error.message}`);
139
+ reject(new TJBotError(stderr?.toString() || error.message));
140
+ }
141
+ else {
142
+ logger.debug(`captured image buffer (${stdout.length} bytes)`);
143
+ resolve(stdout);
144
+ }
145
+ });
146
+ });
147
+ }
148
+ /**
149
+ * Clean up resources (no-op for direct process invocation)
150
+ */
151
+ cleanup() {
152
+ logger.debug('CameraController cleanup (no-op for rpicam-still)');
153
+ }
154
+ }
155
+ //# sourceMappingURL=camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera.js","sourceRoot":"","sources":["../../src/camera/camera.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
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
+ export { CameraController } from './camera.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/camera/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,18 @@
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
+ export { CameraController } from './camera.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/camera/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,75 @@
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 type { ValidateFunction } from 'ajv';
18
+ import type { HardwareConfig, LEDCommonAnodeConfig, LEDNeopixelConfig, ListenConfig, LogLevel, LogConfig, ModelEntry, ModelEntryType, ModelsConfig, SeeBackendAzureConfig, SeeBackendConfig, SeeBackendGoogleCloudConfig, SeeBackendLocalConfig, SeeBackendType, SeeConfig, ShineConfig, SpeakConfig, STTBackendAzureConfig, STTBackendConfig, STTBackendGoogleCloudConfig, STTBackendIBMWatsonConfig, STTBackendLocalConfig, STTBackendType, TJBotConfigSchema, TTSBackendAzureConfig, TTSBackendConfig, TTSBackendGoogleCloudConfig, TTSBackendIBMWatsonConfig, TTSBackendLocalConfig, TTSBackendType, VADConfig, WaveConfig } from './config-types.generated.js';
19
+ export type { HardwareConfig, LEDCommonAnodeConfig, LEDNeopixelConfig, ListenConfig, LogLevel, LogConfig, ModelEntryType, ModelEntry, ModelsConfig, SeeBackendAzureConfig, SeeBackendConfig, SeeBackendGoogleCloudConfig, SeeBackendLocalConfig, SeeBackendType, SeeConfig, ShineConfig, SpeakConfig, STTBackendAzureConfig, STTBackendConfig, STTBackendGoogleCloudConfig, STTBackendIBMWatsonConfig, STTBackendLocalConfig, STTBackendType, TJBotConfigSchema, TTSBackendAzureConfig, TTSBackendConfig, TTSBackendGoogleCloudConfig, TTSBackendIBMWatsonConfig, TTSBackendLocalConfig, TTSBackendType, VADConfig, WaveConfig, };
20
+ export type NoneBackendConfig = Record<string, never>;
21
+ export type STTEngineConfig = NoneBackendConfig | STTBackendLocalConfig | STTBackendIBMWatsonConfig | STTBackendGoogleCloudConfig | STTBackendAzureConfig;
22
+ export type TTSEngineConfig = NoneBackendConfig | TTSBackendLocalConfig | TTSBackendIBMWatsonConfig | TTSBackendGoogleCloudConfig | TTSBackendAzureConfig;
23
+ export type VisionEngineConfig = NoneBackendConfig | SeeBackendLocalConfig | SeeBackendGoogleCloudConfig | SeeBackendAzureConfig;
24
+ export declare const STT_BACKEND_TYPES: readonly ["none", "local", "ibm-watson-stt", "google-cloud-stt", "azure-stt"];
25
+ export declare const TTS_BACKEND_TYPES: readonly ["none", "local", "ibm-watson-tts", "google-cloud-tts", "azure-tts"];
26
+ export declare const SEE_BACKEND_TYPES: readonly ["none", "local", "google-cloud-vision", "azure-vision"];
27
+ export declare function getConfigSchema(): Readonly<Record<string, unknown>>;
28
+ export declare function isSTTBackendType(value: unknown): value is STTBackendType;
29
+ export declare function isTTSBackendType(value: unknown): value is TTSBackendType;
30
+ export declare function isSeeBackendType(value: unknown): value is SeeBackendType;
31
+ export declare const sttBackendTypeSchema: {
32
+ parse(value: unknown): "none" | "local" | "ibm-watson-stt" | "google-cloud-stt" | "azure-stt";
33
+ safeParse(value: unknown): {
34
+ success: false;
35
+ error: Error;
36
+ } | {
37
+ success: true;
38
+ data: "none" | "local" | "ibm-watson-stt" | "google-cloud-stt" | "azure-stt";
39
+ };
40
+ };
41
+ export declare const ttsBackendTypeSchema: {
42
+ parse(value: unknown): "none" | "local" | "ibm-watson-tts" | "google-cloud-tts" | "azure-tts";
43
+ safeParse(value: unknown): {
44
+ success: false;
45
+ error: Error;
46
+ } | {
47
+ success: true;
48
+ data: "none" | "local" | "ibm-watson-tts" | "google-cloud-tts" | "azure-tts";
49
+ };
50
+ };
51
+ export declare const seeBackendTypeSchema: {
52
+ parse(value: unknown): "none" | "local" | "google-cloud-vision" | "azure-vision";
53
+ safeParse(value: unknown): {
54
+ success: false;
55
+ error: Error;
56
+ } | {
57
+ success: true;
58
+ data: "none" | "local" | "google-cloud-vision" | "azure-vision";
59
+ };
60
+ };
61
+ export declare const tjbotConfigSchema: {
62
+ parse(value: unknown): TJBotConfigSchema;
63
+ safeParse(value: unknown): {
64
+ success: false;
65
+ error: Error;
66
+ } | {
67
+ success: true;
68
+ data: TJBotConfigSchema;
69
+ };
70
+ };
71
+ export declare const validateTJBotConfig: ValidateFunction<TJBotConfigSchema>;
72
+ export declare function getSTTBackendConfig(backendConfig: STTBackendConfig | undefined, backendType: STTBackendType): STTEngineConfig;
73
+ export declare function getTTSBackendConfig(backendConfig: TTSBackendConfig | undefined, backendType: TTSBackendType): TTSEngineConfig;
74
+ export declare function getSeeBackendConfig(backendConfig: SeeBackendConfig | undefined, backendType: SeeBackendType): VisionEngineConfig;
75
+ //# sourceMappingURL=config-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-types.d.ts","sourceRoot":"","sources":["../../src/config/config-types.ts"],"names":[],"mappings":"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"}