Some checks failed
Release / semantic-release (push) Successful in 59s
tests / Unit tests (Linux, Python 3.11) (push) Successful in 13m45s
Release / build-linux (push) Failing after 7m47s
Release / build-windows (push) Has been cancelled
Release / build-macos (arm64, macos-latest) (push) Has been cancelled
Release / build-macos (x64, macos-15-intel) (push) Has been cancelled
Release / release-main (push) Has been cancelled
Release / release-develop (push) Has been cancelled
Transform isair/jarvis into a Discord-controlled voice assistant running on the Ubuntu VNC desktop, keeping the mature ~39k-line Python brain intact. - bot/ (Node + bun, discord.js): /자비스 slash commands (ephemeral), voice channel join + voice receive/playback, pluggable VNC screen broadcast (selfbot live / noVNC / screenshot) - bridge/ (Python, Flask): wraps jarvis STT + run_reply_engine + Piper TTS behind a thin localhost HTTP API - .env.example, scripts/ (start_bridge/start_bot/dev), README rewrite, docs/language-comparison.md and docs/vnc-xfce-setup.md Language decision: hybrid (Python brain + Node/bun Discord layer) because Discord blocks bot video; native screen broadcast only works via a Node selfbot library.
44 lines
1.2 KiB
Python
Executable File
44 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Script to generate example configuration files from the default values in config.py.
|
|
This ensures config examples stay in sync with the actual defaults.
|
|
"""
|
|
|
|
import json
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Add src to path so we can import jarvis modules
|
|
script_dir = Path(__file__).parent
|
|
project_root = script_dir.parent
|
|
src_dir = project_root / "src"
|
|
sys.path.insert(0, str(src_dir))
|
|
|
|
from jarvis.config import export_example_config
|
|
|
|
|
|
def generate_config_example() -> None:
|
|
"""Generate examples/config.json from defaults."""
|
|
config = export_example_config(include_db_path=False)
|
|
|
|
# Generate the config file
|
|
config_path = project_root / "examples" / "config.json"
|
|
with config_path.open("w", encoding="utf-8") as f:
|
|
json.dump(config, f, indent=2)
|
|
f.write("\n") # Add trailing newline
|
|
|
|
print(f"Generated {config_path}")
|
|
|
|
|
|
def main() -> None:
|
|
"""Generate all example configuration files."""
|
|
print("Generating configuration examples from defaults...")
|
|
|
|
generate_config_example()
|
|
|
|
print("\nDone! Example files are now in sync with config.py defaults.")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|