generated from Labyricorn/labyricorn-project-template
rebrand: rename VoiceBox to TalkBox throughout codebase
CI / frontend-quality (push) Canceled after 0s
CI / frontend-quality (push) Canceled after 0s
- All 'voicebox'/'Voicebox'/'VOICEBOX' strings replaced with 'talkbox'/'TalkBox'/'TALKBOX' - Port changed from 17493 to 17494 (avoids conflict with upstream VoiceBox) - MCP tool namespace: voicebox.* -> talkbox.* - App bundle ID: sh.voicebox.app -> com.talkbox.app - Binary names: voicebox-server -> talkbox-server, voicebox-mcp -> talkbox-mcp - Docker user/group: voicebox -> talkbox - Database: voicebox.db -> talkbox.db - Env vars: VOICEBOX_* -> TALKBOX_* - Asset files renamed: voicebox-logo.* -> talkbox-logo.*, etc. - External binaries in tauri.conf.json updated to talkbox-server/talkbox-mcp
This commit is contained in:
@@ -6,7 +6,7 @@ set -e
|
||||
# Determine platform
|
||||
PLATFORM=$(rustc --print host-tuple 2>/dev/null || echo "unknown")
|
||||
|
||||
echo "Building Voicebox sidecars for platform: $PLATFORM"
|
||||
echo "Building TalkBox sidecars for platform: $PLATFORM"
|
||||
|
||||
# Build Python binary
|
||||
# Resolve PATH to absolute paths before changing directory
|
||||
@@ -39,9 +39,9 @@ copy_sidecar() {
|
||||
}
|
||||
|
||||
python build_binary.py
|
||||
copy_sidecar voicebox-server
|
||||
copy_sidecar talkbox-server
|
||||
|
||||
python build_binary.py --shim
|
||||
copy_sidecar voicebox-mcp
|
||||
copy_sidecar talkbox-mcp
|
||||
|
||||
echo "Build complete!"
|
||||
|
||||
@@ -6,7 +6,7 @@ set -e
|
||||
echo "Generating OpenAPI client..."
|
||||
|
||||
# Check if backend is running
|
||||
if ! curl -s http://localhost:17493/openapi.json > /dev/null 2>&1; then
|
||||
if ! curl -s http://localhost:17494/openapi.json > /dev/null 2>&1; then
|
||||
echo "Backend not running. Starting backend..."
|
||||
cd backend
|
||||
|
||||
@@ -26,19 +26,19 @@ if ! curl -s http://localhost:17493/openapi.json > /dev/null 2>&1; then
|
||||
|
||||
# Start backend in background
|
||||
echo "Starting backend server..."
|
||||
uvicorn main:app --port 17493 & # Keep the generator on the app's documented local backend port.
|
||||
uvicorn main:app --port 17494 & # Keep the generator on the app's documented local backend port.
|
||||
BACKEND_PID=$!
|
||||
|
||||
# Wait for server to be ready
|
||||
echo "Waiting for server to start..."
|
||||
for _ in {1..30}; do
|
||||
if curl -s http://localhost:17493/openapi.json > /dev/null 2>&1; then
|
||||
if curl -s http://localhost:17494/openapi.json > /dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
if ! curl -s http://localhost:17493/openapi.json > /dev/null 2>&1; then
|
||||
if ! curl -s http://localhost:17494/openapi.json > /dev/null 2>&1; then
|
||||
echo "Error: Backend failed to start"
|
||||
kill $BACKEND_PID 2>/dev/null || true
|
||||
exit 1
|
||||
@@ -52,7 +52,7 @@ fi
|
||||
|
||||
# Download OpenAPI schema
|
||||
echo "Downloading OpenAPI schema..."
|
||||
curl -s http://localhost:17493/openapi.json > app/openapi.json
|
||||
curl -s http://localhost:17494/openapi.json > app/openapi.json
|
||||
|
||||
# Check if openapi-typescript-codegen is installed
|
||||
if ! bunx --bun openapi-typescript-codegen --version > /dev/null 2>&1; then
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
Package the PyInstaller --onedir CUDA build into two archives.
|
||||
|
||||
Takes the PyInstaller --onedir output directory and splits it into:
|
||||
1. voicebox-server-cuda.tar.gz — server core (exe + non-NVIDIA deps)
|
||||
1. talkbox-server-cuda.tar.gz — server core (exe + non-NVIDIA deps)
|
||||
2. cuda-libs-cu128.tar.gz — NVIDIA runtime libraries only
|
||||
3. cuda-libs.json — version manifest for the CUDA libs
|
||||
|
||||
Usage:
|
||||
python scripts/package_cuda.py backend/dist/voicebox-server-cuda/
|
||||
python scripts/package_cuda.py backend/dist/voicebox-server-cuda/ --output release-assets/
|
||||
python scripts/package_cuda.py backend/dist/voicebox-server-cuda/ --cuda-libs-version cu128-v1
|
||||
python scripts/package_cuda.py backend/dist/talkbox-server-cuda/
|
||||
python scripts/package_cuda.py backend/dist/talkbox-server-cuda/ --output release-assets/
|
||||
python scripts/package_cuda.py backend/dist/talkbox-server-cuda/ --cuda-libs-version cu128-v1
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -140,14 +140,14 @@ def package(
|
||||
# Create server core archive
|
||||
# Files are stored relative to the archive root (no parent directory prefix)
|
||||
# so extracting to backends/cuda/ puts everything at the right level.
|
||||
server_archive = output_dir / "voicebox-server-cuda.tar.gz"
|
||||
server_archive = output_dir / "talkbox-server-cuda.tar.gz"
|
||||
print(f"\nCreating server core archive: {server_archive.name}")
|
||||
with tarfile.open(server_archive, "w:gz") as tar:
|
||||
for rel_str, full_path in core_files:
|
||||
tar.add(full_path, arcname=rel_str)
|
||||
server_sha = sha256_file(server_archive)
|
||||
(output_dir / "voicebox-server-cuda.tar.gz.sha256").write_text(
|
||||
f"{server_sha} voicebox-server-cuda.tar.gz\n"
|
||||
(output_dir / "talkbox-server-cuda.tar.gz.sha256").write_text(
|
||||
f"{server_sha} talkbox-server-cuda.tar.gz\n"
|
||||
)
|
||||
print(f" Size: {server_archive.stat().st_size / (1024**2):.1f} MB")
|
||||
print(f" SHA-256: {server_sha[:16]}...")
|
||||
@@ -197,7 +197,7 @@ def main():
|
||||
parser.add_argument(
|
||||
"input",
|
||||
type=Path,
|
||||
help="Path to PyInstaller --onedir output directory (e.g. backend/dist/voicebox-server-cuda/)",
|
||||
help="Path to PyInstaller --onedir output directory (e.g. backend/dist/talkbox-server-cuda/)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--output",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
Package the PyInstaller --onedir ROCm build into two archives.
|
||||
|
||||
Takes the PyInstaller --onedir output directory and splits it into:
|
||||
1. voicebox-server-rocm.tar.gz — server core (exe + non-AMD deps)
|
||||
1. talkbox-server-rocm.tar.gz — server core (exe + non-AMD deps)
|
||||
2. rocm-libs-{version}.tar.gz — AMD/ROCm runtime libraries only
|
||||
3. rocm-libs.json — version manifest for the ROCm libs
|
||||
|
||||
@@ -11,9 +11,9 @@ every app update while the much larger ROCm runtime stays cached until the
|
||||
toolkit version bumps.
|
||||
|
||||
Usage:
|
||||
python scripts/package_rocm.py backend/dist/voicebox-server-rocm/
|
||||
python scripts/package_rocm.py backend/dist/voicebox-server-rocm/ --output release-assets/
|
||||
python scripts/package_rocm.py backend/dist/voicebox-server-rocm/ --rocm-libs-version rocm7.2-v1
|
||||
python scripts/package_rocm.py backend/dist/talkbox-server-rocm/
|
||||
python scripts/package_rocm.py backend/dist/talkbox-server-rocm/ --output release-assets/
|
||||
python scripts/package_rocm.py backend/dist/talkbox-server-rocm/ --rocm-libs-version rocm7.2-v1
|
||||
"""
|
||||
|
||||
import argparse
|
||||
@@ -159,14 +159,14 @@ def package(
|
||||
|
||||
# Create server core archive. Files are stored relative to the archive root
|
||||
# (no parent prefix) so extracting to backends/rocm/ lands at the right level.
|
||||
server_archive = output_dir / "voicebox-server-rocm.tar.gz"
|
||||
server_archive = output_dir / "talkbox-server-rocm.tar.gz"
|
||||
print(f"\nCreating server core archive: {server_archive.name}")
|
||||
with tarfile.open(server_archive, "w:gz") as tar:
|
||||
for rel_str, full_path in core_files:
|
||||
tar.add(full_path, arcname=rel_str)
|
||||
server_sha = sha256_file(server_archive)
|
||||
(output_dir / "voicebox-server-rocm.tar.gz.sha256").write_text(
|
||||
f"{server_sha} voicebox-server-rocm.tar.gz\n"
|
||||
(output_dir / "talkbox-server-rocm.tar.gz.sha256").write_text(
|
||||
f"{server_sha} talkbox-server-rocm.tar.gz\n"
|
||||
)
|
||||
print(f" Size: {server_archive.stat().st_size / (1024**2):.1f} MB")
|
||||
print(f" SHA-256: {server_sha[:16]}...")
|
||||
@@ -216,7 +216,7 @@ def main():
|
||||
parser.add_argument(
|
||||
"input",
|
||||
type=Path,
|
||||
help="Path to PyInstaller --onedir output directory (e.g. backend/dist/voicebox-server-rocm/)",
|
||||
help="Path to PyInstaller --onedir output directory (e.g. backend/dist/talkbox-server-rocm/)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--output",
|
||||
|
||||
@@ -7,14 +7,14 @@ set -e
|
||||
|
||||
echo "🔑 Checking for signing keys..."
|
||||
|
||||
if [ ! -f ~/.tauri/voicebox.key ]; then
|
||||
echo "❌ Private key not found at ~/.tauri/voicebox.key"
|
||||
echo "Run: cd tauri && bun tauri signer generate -w ~/.tauri/voicebox.key"
|
||||
if [ ! -f ~/.tauri/talkbox.key ]; then
|
||||
echo "❌ Private key not found at ~/.tauri/talkbox.key"
|
||||
echo "Run: cd tauri && bun tauri signer generate -w ~/.tauri/talkbox.key"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f ~/.tauri/voicebox.key.pub ]; then
|
||||
echo "❌ Public key not found at ~/.tauri/voicebox.key.pub"
|
||||
if [ ! -f ~/.tauri/talkbox.key.pub ]; then
|
||||
echo "❌ Public key not found at ~/.tauri/talkbox.key.pub"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -27,14 +27,14 @@ if grep -q "REPLACE_WITH_YOUR_PUBLIC_KEY" tauri/src-tauri/tauri.conf.json; then
|
||||
echo ""
|
||||
echo "Add this to tauri/src-tauri/tauri.conf.json:"
|
||||
echo ""
|
||||
cat ~/.tauri/voicebox.key.pub
|
||||
cat ~/.tauri/talkbox.key.pub
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "🔧 Setting up environment..."
|
||||
|
||||
export TAURI_SIGNING_PRIVATE_KEY="$(cat ~/.tauri/voicebox.key)"
|
||||
export TAURI_SIGNING_PRIVATE_KEY="$(cat ~/.tauri/talkbox.key)"
|
||||
export TAURI_SIGNING_PRIVATE_KEY_PASSWORD=""
|
||||
|
||||
echo "✅ Environment configured"
|
||||
|
||||
@@ -10,6 +10,6 @@ for dev in /dev/kfd /dev/dri/render*; do
|
||||
grp="gpu$gid"
|
||||
groupadd -g "$gid" "$grp"
|
||||
}
|
||||
usermod -aG "$grp" voicebox
|
||||
usermod -aG "$grp" talkbox
|
||||
done
|
||||
exec gosu voicebox "$@"
|
||||
exec gosu talkbox "$@"
|
||||
|
||||
@@ -47,7 +47,7 @@ function getTargetTriple() {
|
||||
|
||||
// Create a minimal executable for the platform. ``baseName`` is the
|
||||
// sidecar identifier as declared in tauri.conf.json's ``externalBin``
|
||||
// (e.g. "voicebox-server", "voicebox-mcp"). Tauri appends the target
|
||||
// (e.g. "talkbox-server", "talkbox-mcp"). Tauri appends the target
|
||||
// triple to that name at compile time.
|
||||
function createPlaceholderBinary(targetTriple, baseName) {
|
||||
const isWindows = targetTriple.includes('windows');
|
||||
@@ -369,7 +369,7 @@ exit 1
|
||||
// Every sidecar listed in tauri.conf.json's ``externalBin`` needs a
|
||||
// file on disk at compile time, even in dev. Add to this list whenever
|
||||
// a new sidecar is introduced.
|
||||
const SIDECAR_BASE_NAMES = ['voicebox-server', 'voicebox-mcp'];
|
||||
const SIDECAR_BASE_NAMES = ['talkbox-server', 'talkbox-mcp'];
|
||||
|
||||
function main() {
|
||||
const targetTriple = getTargetTriple();
|
||||
|
||||
+24
-24
@@ -6,15 +6,15 @@ set -e
|
||||
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
EXPORTS_DIR="tauri/assets/voicebox_exports"
|
||||
ICON_BUNDLE="tauri/assets/voicebox.icon"
|
||||
EXPORTS_DIR="tauri/assets/talkbox_exports"
|
||||
ICON_BUNDLE="tauri/assets/talkbox.icon"
|
||||
ASSETS_DIR="$ICON_BUNDLE/Assets"
|
||||
ICONS_DIR="tauri/src-tauri/icons"
|
||||
LANDING_LOGO="landing/public/voicebox-logo.png"
|
||||
LANDING_LOGO="landing/public/talkbox-logo.png"
|
||||
LANDING_PUBLIC="landing/public"
|
||||
SOURCE_ICON="$EXPORTS_DIR/voice[email protected]"
|
||||
SOURCE_ICON="$EXPORTS_DIR/talk[email protected]"
|
||||
|
||||
echo "🎨 Updating all Voicebox icons from exports..."
|
||||
echo "🎨 Updating all TalkBox icons from exports..."
|
||||
echo ""
|
||||
|
||||
# Check if source exists
|
||||
@@ -31,7 +31,7 @@ echo "📦 Part 1: Compiling Liquid Glass Icon Bundle"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
|
||||
echo "Compiling voicebox.icon with actool..."
|
||||
echo "Compiling talkbox.icon with actool..."
|
||||
# Remove old generated icons to force rebuild
|
||||
rm -rf tauri/src-tauri/gen/*.icns tauri/src-tauri/gen/Assets.car 2>/dev/null
|
||||
|
||||
@@ -39,10 +39,10 @@ cd tauri/src-tauri
|
||||
cargo build 2>/dev/null || echo " ⚠ Cargo build had warnings (this is normal)"
|
||||
cd ../..
|
||||
|
||||
if [ -f "tauri/src-tauri/gen/voicebox.icns" ]; then
|
||||
echo " ✓ voicebox.icns generated"
|
||||
if [ -f "tauri/src-tauri/gen/talkbox.icns" ]; then
|
||||
echo " ✓ talkbox.icns generated"
|
||||
else
|
||||
echo " ⚠ Warning: voicebox.icns not generated (will use fallback)"
|
||||
echo " ⚠ Warning: talkbox.icns not generated (will use fallback)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -67,24 +67,24 @@ sips -s format png -z 512 512 "$SOURCE_ICON" --out "$ICONS_DIR/icon.png" 2>/dev/
|
||||
|
||||
# Copy Liquid Glass compiled ICNS or generate fallback
|
||||
echo "Copying icon.icns..."
|
||||
if [ -f "tauri/src-tauri/gen/voicebox.icns" ]; then
|
||||
cp tauri/src-tauri/gen/voicebox.icns "$ICONS_DIR/icon.icns"
|
||||
if [ -f "tauri/src-tauri/gen/talkbox.icns" ]; then
|
||||
cp tauri/src-tauri/gen/talkbox.icns "$ICONS_DIR/icon.icns"
|
||||
echo " ✓ Copied Liquid Glass compiled icon.icns"
|
||||
else
|
||||
echo " ⚠ Liquid Glass icon not found, generating fallback icon.icns..."
|
||||
mkdir -p /tmp/voicebox-iconset.iconset
|
||||
sips -s format png -z 16 16 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/icon_16x16.png 2>/dev/null
|
||||
sips -s format png -z 32 32 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 32 32 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/icon_32x32.png 2>/dev/null
|
||||
sips -s format png -z 64 64 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 128 128 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/icon_128x128.png 2>/dev/null
|
||||
sips -s format png -z 256 256 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 256 256 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/icon_256x256.png 2>/dev/null
|
||||
sips -s format png -z 512 512 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 512 512 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/icon_512x512.png 2>/dev/null
|
||||
sips -s format png -z 1024 1024 "$SOURCE_ICON" --out /tmp/voicebox-iconset.iconset/[email protected] 2>/dev/null
|
||||
iconutil -c icns /tmp/voicebox-iconset.iconset -o "$ICONS_DIR/icon.icns"
|
||||
rm -rf /tmp/voicebox-iconset.iconset
|
||||
mkdir -p /tmp/talkbox-iconset.iconset
|
||||
sips -s format png -z 16 16 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/icon_16x16.png 2>/dev/null
|
||||
sips -s format png -z 32 32 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 32 32 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/icon_32x32.png 2>/dev/null
|
||||
sips -s format png -z 64 64 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 128 128 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/icon_128x128.png 2>/dev/null
|
||||
sips -s format png -z 256 256 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 256 256 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/icon_256x256.png 2>/dev/null
|
||||
sips -s format png -z 512 512 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/[email protected] 2>/dev/null
|
||||
sips -s format png -z 512 512 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/icon_512x512.png 2>/dev/null
|
||||
sips -s format png -z 1024 1024 "$SOURCE_ICON" --out /tmp/talkbox-iconset.iconset/[email protected] 2>/dev/null
|
||||
iconutil -c icns /tmp/talkbox-iconset.iconset -o "$ICONS_DIR/icon.icns"
|
||||
rm -rf /tmp/talkbox-iconset.iconset
|
||||
echo " ✓ Generated fallback icon.icns"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user