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,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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"}
|