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,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Get the list of all colors recognized by TJBot.
|
|
18
|
+
* @return {string[]} List of all named colors recognized by `shine()` and `pulse()`.
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
export declare function getShineColors(): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Convert hex color to RGB value.
|
|
24
|
+
* @param {string} hexColor Hex color (e.g. FF8888)
|
|
25
|
+
* @return {array} RGB color (e.g. (255, 128, 128))
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
export declare function convertHexToRgbColor(hexColor: string): [number, number, number];
|
|
29
|
+
/**
|
|
30
|
+
* Normalize the given color to #RRGGBB.
|
|
31
|
+
* @param {string} color The color to shine the LED. May be specified in a number of
|
|
32
|
+
* formats, including: hexadecimal, (e.g. "0xF12AC4", "11FF22", "#AABB24"), "on", "off",
|
|
33
|
+
* or may be a named color from TJBot's curated LED color list. Hexadecimal colors
|
|
34
|
+
* follow an #RRGGBB format.
|
|
35
|
+
* @return {string} Hex string corresponding to the given color (e.g. "#RRGGBB")
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
export declare function normalizeColor(color: string): string;
|
|
39
|
+
//# sourceMappingURL=colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA2DH;;;;GAIG;AACH,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAGzC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAgB/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6DpD"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync } from 'fs';
|
|
17
|
+
import yaml from 'js-yaml';
|
|
18
|
+
import { dirname, join } from 'path';
|
|
19
|
+
import { fileURLToPath } from 'url';
|
|
20
|
+
import { TJBotError } from './errors.js';
|
|
21
|
+
import { getLogger } from './logging.js';
|
|
22
|
+
const logger = getLogger(import.meta.url);
|
|
23
|
+
const DIRNAME = dirname(fileURLToPath(import.meta.url));
|
|
24
|
+
/**
|
|
25
|
+
* Color map: normalized color name (lowercase, no spaces) -> hex value
|
|
26
|
+
* @private
|
|
27
|
+
*/
|
|
28
|
+
const colorMap = new Map();
|
|
29
|
+
/**
|
|
30
|
+
* Original color names (for getShineColors())
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
const colorNames = [];
|
|
34
|
+
let colorsLoaded = false;
|
|
35
|
+
/**
|
|
36
|
+
* Load colors from YAML file
|
|
37
|
+
* @private
|
|
38
|
+
*/
|
|
39
|
+
function loadColors() {
|
|
40
|
+
try {
|
|
41
|
+
const colorsPath = join(DIRNAME, '../config/vendor/colors.yaml');
|
|
42
|
+
const colorsYaml = readFileSync(colorsPath, 'utf8');
|
|
43
|
+
const colors = yaml.load(colorsYaml);
|
|
44
|
+
for (const [name, hex] of Object.entries(colors)) {
|
|
45
|
+
// Store original name for listing
|
|
46
|
+
colorNames.push(name);
|
|
47
|
+
// Normalize: remove all whitespace and convert to lowercase
|
|
48
|
+
const normalizedName = name.replace(/\s+/g, '').toLowerCase();
|
|
49
|
+
colorMap.set(normalizedName, hex);
|
|
50
|
+
}
|
|
51
|
+
logger.debug(`loaded ${colorNames.length} colors for LED control`);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
logger.error('Failed to load colors.yaml:', error);
|
|
55
|
+
throw new TJBotError('Failed to load LED color definitions');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function ensureColorsLoaded() {
|
|
59
|
+
if (!colorsLoaded) {
|
|
60
|
+
loadColors();
|
|
61
|
+
colorsLoaded = true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get the list of all colors recognized by TJBot.
|
|
66
|
+
* @return {string[]} List of all named colors recognized by `shine()` and `pulse()`.
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
export function getShineColors() {
|
|
70
|
+
ensureColorsLoaded();
|
|
71
|
+
return [...colorNames];
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Convert hex color to RGB value.
|
|
75
|
+
* @param {string} hexColor Hex color (e.g. FF8888)
|
|
76
|
+
* @return {array} RGB color (e.g. (255, 128, 128))
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
export function convertHexToRgbColor(hexColor) {
|
|
80
|
+
const rgbHex = hexColor
|
|
81
|
+
.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (_m, r, g, b) => `#${r}${r}${g}${g}${b}${b}`)
|
|
82
|
+
.substring(1)
|
|
83
|
+
.match(/.{2}/g);
|
|
84
|
+
if (rgbHex !== null) {
|
|
85
|
+
const rgb = rgbHex.map((x) => parseInt(x, 16));
|
|
86
|
+
return [rgb[0], rgb[1], rgb[2]];
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
logger.warn(`An error occurred converting hex color ${hexColor} to RGB, returning [0, 0, 0]`);
|
|
90
|
+
return [0, 0, 0];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Normalize the given color to #RRGGBB.
|
|
95
|
+
* @param {string} color The color to shine the LED. May be specified in a number of
|
|
96
|
+
* formats, including: hexadecimal, (e.g. "0xF12AC4", "11FF22", "#AABB24"), "on", "off",
|
|
97
|
+
* or may be a named color from TJBot's curated LED color list. Hexadecimal colors
|
|
98
|
+
* follow an #RRGGBB format.
|
|
99
|
+
* @return {string} Hex string corresponding to the given color (e.g. "#RRGGBB")
|
|
100
|
+
* @private
|
|
101
|
+
*/
|
|
102
|
+
export function normalizeColor(color) {
|
|
103
|
+
ensureColorsLoaded();
|
|
104
|
+
let normColor = color;
|
|
105
|
+
// assume undefined == "off"
|
|
106
|
+
if (normColor === undefined) {
|
|
107
|
+
normColor = 'off';
|
|
108
|
+
}
|
|
109
|
+
// strip prefixes if they are present
|
|
110
|
+
if (normColor.startsWith('0x')) {
|
|
111
|
+
normColor = normColor.slice(2);
|
|
112
|
+
}
|
|
113
|
+
if (normColor.startsWith('#')) {
|
|
114
|
+
normColor = normColor.slice(1);
|
|
115
|
+
}
|
|
116
|
+
// is this a hex number or a named color?
|
|
117
|
+
const isHex = /(^[0-9A-F]{6}$)|(^[0-9A-F]{3}$)/i;
|
|
118
|
+
let rgb;
|
|
119
|
+
if (!isHex.test(normColor)) {
|
|
120
|
+
// Look up named color in our curated color map
|
|
121
|
+
const normalizedName = normColor.replace(/\s+/g, '').toLowerCase();
|
|
122
|
+
const hexValue = colorMap.get(normalizedName);
|
|
123
|
+
if (hexValue) {
|
|
124
|
+
rgb = hexValue;
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
rgb = undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
rgb = normColor;
|
|
132
|
+
}
|
|
133
|
+
// Expand CSS-style short hex (#abc → #aabbcc)
|
|
134
|
+
if (rgb !== undefined && rgb.replace(/^#/, '').length === 3) {
|
|
135
|
+
rgb = rgb
|
|
136
|
+
.replace(/^#/, '')
|
|
137
|
+
.split('')
|
|
138
|
+
.map((ch) => ch + ch)
|
|
139
|
+
.join('');
|
|
140
|
+
}
|
|
141
|
+
// did we get something back?
|
|
142
|
+
if (rgb === undefined) {
|
|
143
|
+
throw new TJBotError(`TJBot did not understand the specified color "${color}"`);
|
|
144
|
+
}
|
|
145
|
+
// prefix rgb with # in case it's not
|
|
146
|
+
if (!rgb.startsWith('#')) {
|
|
147
|
+
rgb = `#${rgb}`;
|
|
148
|
+
}
|
|
149
|
+
// throw an error if we didn't understand this color
|
|
150
|
+
if (rgb.length !== 7) {
|
|
151
|
+
throw new TJBotError(`TJBot did not understand the specified color "${color}"`);
|
|
152
|
+
}
|
|
153
|
+
return rgb;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=colors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colors.js","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE1C,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,GAAa,EAAE,CAAC;AAChC,IAAI,YAAY,GAAG,KAAK,CAAC;AAEzB;;;GAGG;AACH,SAAS,UAAU;IACf,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAA2B,CAAC;QAE/D,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,kCAAkC;YAClC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEtB,4DAA4D;YAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9D,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,UAAU,UAAU,CAAC,MAAM,yBAAyB,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,IAAI,UAAU,CAAC,sCAAsC,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB;IACvB,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,UAAU,EAAE,CAAC;QACb,YAAY,GAAG,IAAI,CAAC;IACxB,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC1B,kBAAkB,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACjD,MAAM,MAAM,GAA4B,QAAQ;SAC3C,OAAO,CACJ,kCAAkC,EAClC,CAAC,EAAU,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAC/E;SACA,SAAS,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,OAAO,CAAC,CAAC;IAEpB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,GAAG,GAAa,MAAM,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,IAAI,CAAC,0CAA0C,QAAQ,8BAA8B,CAAC,CAAC;QAC9F,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IACxC,kBAAkB,EAAE,CAAC;IAErB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,4BAA4B;IAC5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1B,SAAS,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,qCAAqC;IACrC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,kCAAkC,CAAC;IACjD,IAAI,GAAG,CAAC;IACR,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,+CAA+C;QAC/C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE9C,IAAI,QAAQ,EAAE,CAAC;YACX,GAAG,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,CAAC;YACJ,GAAG,GAAG,SAAS,CAAC;QACpB,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,GAAG,GAAG,SAAS,CAAC;IACpB,CAAC;IAED,8CAA8C;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,GAAG,GAAG,GAAG;aACJ,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;aACpB,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,6BAA6B;IAC7B,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACpB,MAAM,IAAI,UAAU,CAAC,iDAAiD,KAAK,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,oDAAoD;IACpD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,UAAU,CAAC,iDAAiD,KAAK,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,GAAG,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* TJBot capabilities
|
|
19
|
+
* @readonly
|
|
20
|
+
* @enum {string}
|
|
21
|
+
*/
|
|
22
|
+
export declare enum Capability {
|
|
23
|
+
LISTEN = "listen",
|
|
24
|
+
SEE = "see",
|
|
25
|
+
SHINE = "shine",
|
|
26
|
+
SPEAK = "speak",
|
|
27
|
+
WAVE = "wave"
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* TJBot hardware
|
|
31
|
+
* @readonly
|
|
32
|
+
* @enum {string}
|
|
33
|
+
*/
|
|
34
|
+
export declare enum Hardware {
|
|
35
|
+
CAMERA = "camera",
|
|
36
|
+
LED = "led",
|
|
37
|
+
MICROPHONE = "microphone",
|
|
38
|
+
SERVO = "servo",
|
|
39
|
+
SPEAKER = "speaker"
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,oBAAY,UAAU;IAClB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,IAAI,SAAS;CAChB;AAED;;;;GAIG;AACH,oBAAY,QAAQ;IAChB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,OAAO,YAAY;CACtB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
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
|
+
/**
|
|
18
|
+
* TJBot capabilities
|
|
19
|
+
* @readonly
|
|
20
|
+
* @enum {string}
|
|
21
|
+
*/
|
|
22
|
+
export var Capability;
|
|
23
|
+
(function (Capability) {
|
|
24
|
+
Capability["LISTEN"] = "listen";
|
|
25
|
+
Capability["SEE"] = "see";
|
|
26
|
+
Capability["SHINE"] = "shine";
|
|
27
|
+
Capability["SPEAK"] = "speak";
|
|
28
|
+
Capability["WAVE"] = "wave";
|
|
29
|
+
})(Capability || (Capability = {}));
|
|
30
|
+
/**
|
|
31
|
+
* TJBot hardware
|
|
32
|
+
* @readonly
|
|
33
|
+
* @enum {string}
|
|
34
|
+
*/
|
|
35
|
+
export var Hardware;
|
|
36
|
+
(function (Hardware) {
|
|
37
|
+
Hardware["CAMERA"] = "camera";
|
|
38
|
+
Hardware["LED"] = "led";
|
|
39
|
+
Hardware["MICROPHONE"] = "microphone";
|
|
40
|
+
Hardware["SERVO"] = "servo";
|
|
41
|
+
Hardware["SPEAKER"] = "speaker";
|
|
42
|
+
})(Hardware || (Hardware = {}));
|
|
43
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,+BAAiB,CAAA;IACjB,yBAAW,CAAA;IACX,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,2BAAa,CAAA;AACjB,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAChB,6BAAiB,CAAA;IACjB,uBAAW,CAAA;IACX,qCAAyB,CAAA;IACzB,2BAAe,CAAA;IACf,+BAAmB,CAAA;AACvB,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface AzureCredentials {
|
|
17
|
+
speechKey?: string;
|
|
18
|
+
speechRegion?: string;
|
|
19
|
+
visionKey?: string;
|
|
20
|
+
visionEndpoint?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Resolves a credentials file path by checking provided path, then CWD, then ~/.tjbot.
|
|
24
|
+
* @param filename - The filename to look for (e.g., 'azure-credentials.env')
|
|
25
|
+
* @param providedPath - Optional explicit path to check first
|
|
26
|
+
* @throws {TJBotError} if no credentials file is found
|
|
27
|
+
*/
|
|
28
|
+
export declare function resolveCredentialsPath(filename: string, providedPath?: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Resolves, loads, and exports Azure credentials.
|
|
31
|
+
*/
|
|
32
|
+
export declare function loadAzureCredentials(providedPath?: string): AzureCredentials;
|
|
33
|
+
/**
|
|
34
|
+
* Resolves Google Cloud credentials and exports credentials path for ADC.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadGoogleCloudCredentials(providedPath?: string): {
|
|
37
|
+
credentialsPath: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolves, loads, and exports IBM Watson credentials.
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadIBMWatsonCloudCredentials(providedPath?: string): void;
|
|
43
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,WAAW,gBAAgB;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBtF;AAiCD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAkB5E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAW7F;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CASzE"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import fs from 'fs';
|
|
17
|
+
import os from 'os';
|
|
18
|
+
import path from 'path';
|
|
19
|
+
import { TJBotError } from './errors.js';
|
|
20
|
+
import { getLogger } from './logging.js';
|
|
21
|
+
const logger = getLogger(import.meta.url);
|
|
22
|
+
/**
|
|
23
|
+
* Resolves a credentials file path by checking provided path, then CWD, then ~/.tjbot.
|
|
24
|
+
* @param filename - The filename to look for (e.g., 'azure-credentials.env')
|
|
25
|
+
* @param providedPath - Optional explicit path to check first
|
|
26
|
+
* @throws {TJBotError} if no credentials file is found
|
|
27
|
+
*/
|
|
28
|
+
export function resolveCredentialsPath(filename, providedPath) {
|
|
29
|
+
if (providedPath) {
|
|
30
|
+
logger.verbose(`Using specified path for credentials: ${providedPath}`);
|
|
31
|
+
if (!fs.existsSync(providedPath)) {
|
|
32
|
+
throw new TJBotError(`Credentials file not found at: ${providedPath}`);
|
|
33
|
+
}
|
|
34
|
+
return providedPath;
|
|
35
|
+
}
|
|
36
|
+
const defaultPaths = [path.join(process.cwd(), filename), path.join(os.homedir(), '.tjbot', filename)];
|
|
37
|
+
for (const defaultPath of defaultPaths) {
|
|
38
|
+
if (fs.existsSync(defaultPath)) {
|
|
39
|
+
logger.verbose(`Found credentials file at: ${defaultPath}`);
|
|
40
|
+
return defaultPath;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
throw new TJBotError(`Credentials file ${filename} not found. Place credentials at: ./${filename} or ~/.tjbot/${filename}`);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parses a .env format credentials file into key-value pairs.
|
|
47
|
+
*/
|
|
48
|
+
function parseEnvCredentialsFile(credentialsPath) {
|
|
49
|
+
const raw = {};
|
|
50
|
+
fs.readFileSync(credentialsPath, 'utf-8')
|
|
51
|
+
.split('\n')
|
|
52
|
+
.forEach((line) => {
|
|
53
|
+
line = line.trim();
|
|
54
|
+
if (line && !line.startsWith('#')) {
|
|
55
|
+
const [key, ...valueParts] = line.split('=');
|
|
56
|
+
if (key) {
|
|
57
|
+
raw[key.trim()] = valueParts.join('=').trim();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
logger.debug(`Parsed ${Object.keys(raw).length} credentials from file: ${credentialsPath}`);
|
|
62
|
+
return raw;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Loads credentials into environment variables.
|
|
66
|
+
* @param credentials - A record of key-value pairs representing credentials
|
|
67
|
+
*/
|
|
68
|
+
function loadCredentialsIntoEnvironment(credentials) {
|
|
69
|
+
Object.entries(credentials).forEach(([key, value]) => {
|
|
70
|
+
process.env[key] = value;
|
|
71
|
+
logger.debug(`loaded credential into environment: ${key}=***`);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resolves, loads, and exports Azure credentials.
|
|
76
|
+
*/
|
|
77
|
+
export function loadAzureCredentials(providedPath) {
|
|
78
|
+
const credentialsPath = resolveCredentialsPath('azure-credentials.env', providedPath);
|
|
79
|
+
logger.verbose(`Loading Azure credentials from file: ${credentialsPath}`);
|
|
80
|
+
try {
|
|
81
|
+
const raw = parseEnvCredentialsFile(credentialsPath);
|
|
82
|
+
loadCredentialsIntoEnvironment(raw);
|
|
83
|
+
logger.debug(`Loaded Azure credentials from: ${credentialsPath}`);
|
|
84
|
+
return {
|
|
85
|
+
speechKey: raw.AZURE_SPEECH_KEY,
|
|
86
|
+
speechRegion: raw.AZURE_SPEECH_REGION,
|
|
87
|
+
visionKey: raw.AZURE_VISION_KEY,
|
|
88
|
+
visionEndpoint: raw.AZURE_VISION_ENDPOINT,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
throw new TJBotError(`Failed to load Azure credentials from ${credentialsPath}`, { cause: err });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Resolves Google Cloud credentials and exports credentials path for ADC.
|
|
97
|
+
*/
|
|
98
|
+
export function loadGoogleCloudCredentials(providedPath) {
|
|
99
|
+
const credentialsPath = resolveCredentialsPath('google-credentials.json', providedPath);
|
|
100
|
+
logger.verbose(`Loading Google Cloud credentials from file: ${credentialsPath}`);
|
|
101
|
+
if (!fs.existsSync(credentialsPath)) {
|
|
102
|
+
throw new TJBotError(`Google Cloud credentials file not found at: ${credentialsPath}`);
|
|
103
|
+
}
|
|
104
|
+
loadCredentialsIntoEnvironment({ GOOGLE_APPLICATION_CREDENTIALS: credentialsPath });
|
|
105
|
+
return { credentialsPath };
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Resolves, loads, and exports IBM Watson credentials.
|
|
109
|
+
*/
|
|
110
|
+
export function loadIBMWatsonCloudCredentials(providedPath) {
|
|
111
|
+
const credentialsPath = resolveCredentialsPath('ibm-credentials.env', providedPath);
|
|
112
|
+
logger.verbose(`Loading IBM Watson credentials from file: ${credentialsPath}`);
|
|
113
|
+
try {
|
|
114
|
+
const raw = parseEnvCredentialsFile(credentialsPath);
|
|
115
|
+
loadCredentialsIntoEnvironment(raw);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
throw new TJBotError(`Failed to load IBM Watson credentials from ${credentialsPath}`, { cause: err });
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/utils/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export declare class TJBotError extends Error {
|
|
17
|
+
readonly code?: string;
|
|
18
|
+
readonly context?: Record<string, unknown>;
|
|
19
|
+
readonly cause?: Error;
|
|
20
|
+
constructor(message: string, options?: {
|
|
21
|
+
code?: string;
|
|
22
|
+
context?: Record<string, unknown>;
|
|
23
|
+
cause?: Error;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,qBAAa,UAAW,SAAQ,KAAK;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;CAY7G"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export class TJBotError extends Error {
|
|
17
|
+
code;
|
|
18
|
+
context;
|
|
19
|
+
cause;
|
|
20
|
+
constructor(message, options) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = 'TJBotError';
|
|
23
|
+
this.code = options?.code;
|
|
24
|
+
this.context = options?.context;
|
|
25
|
+
this.cause = options?.cause;
|
|
26
|
+
// Maintain proper stack trace for where our error was thrown (only available on V8)
|
|
27
|
+
if (Error.captureStackTrace) {
|
|
28
|
+
Error.captureStackTrace(this, TJBotError);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,OAAO,UAAW,SAAQ,KAAK;IACxB,IAAI,CAAU;IACd,OAAO,CAA2B;IAClC,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,OAA6E;QACtG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAE5B,oFAAoF;QACpF,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -0,0 +1,25 @@
|
|
|
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 { convertHexToRgbColor, getShineColors, normalizeColor } from './colors.js';
|
|
18
|
+
export { Capability, Hardware } from './constants.js';
|
|
19
|
+
export { TJBotError } from './errors.js';
|
|
20
|
+
export { getLogger, initWinston } from './logging.js';
|
|
21
|
+
export type { TJBotLogLevel } from './logging.js';
|
|
22
|
+
export { ModelRegistry } from './model-registry.js';
|
|
23
|
+
export type { BaseModelMetadata, ModelType, STTModelMetadata, TTSModelMetadata, VADModelMetadata, VisionModelMetadata, } from './model-registry.js';
|
|
24
|
+
export { isCommandAvailable, sleep, sleepSync } from './utils.js';
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACR,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 { convertHexToRgbColor, getShineColors, normalizeColor } from './colors.js';
|
|
18
|
+
export { Capability, Hardware } from './constants.js';
|
|
19
|
+
export { TJBotError } from './errors.js';
|
|
20
|
+
export { getLogger, initWinston } from './logging.js';
|
|
21
|
+
export { ModelRegistry } from './model-registry.js';
|
|
22
|
+
export { isCommandAvailable, sleep, sleepSync } from './utils.js';
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2026-present TJBot Contributors. All Rights Reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import winston from 'winston';
|
|
17
|
+
export type TJBotLogLevel = 'error' | 'warn' | 'info' | 'verbose' | 'debug';
|
|
18
|
+
export declare enum LogEmoji {
|
|
19
|
+
CAMERA = "\uD83D\uDCF7",
|
|
20
|
+
COLOR = "\uD83C\uDFA8",
|
|
21
|
+
CONFIG = "\u2699\uFE0F",
|
|
22
|
+
GENERAL = "\uD83E\uDD16",
|
|
23
|
+
HARDWARE = "\uD83D\uDD27",
|
|
24
|
+
LED = "\uD83D\uDCA1",
|
|
25
|
+
MIC = "\uD83C\uDFA4",
|
|
26
|
+
MODEL = "\uD83D\uDCE6",
|
|
27
|
+
RPI = "\uD83C\uDF53",
|
|
28
|
+
SERVO = "\uD83E\uDDBE",
|
|
29
|
+
SPEAKER = "\uD83D\uDD08",
|
|
30
|
+
STT = "\uD83E\uDDBB",
|
|
31
|
+
TTS = "\uD83D\uDCAC",
|
|
32
|
+
VISION = "\uD83D\uDC41\uFE0F"
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize Winston with TJBot's default formatter.
|
|
36
|
+
* Safe to call repeatedly; only the first call configures transports/format.
|
|
37
|
+
* Later calls only update log level.
|
|
38
|
+
*/
|
|
39
|
+
export declare function initWinston(level?: TJBotLogLevel): void;
|
|
40
|
+
/**
|
|
41
|
+
* Get a module-scoped logger that lets the formatter infer a category emoji.
|
|
42
|
+
*/
|
|
43
|
+
export declare function getLogger(moduleName: string): winston.Logger;
|
|
44
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAE5E,oBAAY,QAAQ;IAChB,MAAM,iBAAO;IACb,KAAK,iBAAO;IACZ,MAAM,iBAAO;IACb,OAAO,iBAAO;IACd,QAAQ,iBAAO;IACf,GAAG,iBAAO;IACV,GAAG,iBAAO;IACV,KAAK,iBAAO;IACZ,GAAG,iBAAO;IACV,KAAK,iBAAO;IACZ,OAAO,iBAAO;IACd,GAAG,iBAAO;IACV,GAAG,iBAAO;IACV,MAAM,uBAAQ;CACjB;AAyED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,GAAE,aAAsB,GAAG,IAAI,CAY/D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAE5D"}
|