Replace OpenCode harness with Hermes, remove workspace dependency, and move vocabulary/corrections to app folder

This commit is contained in:
Adolfo Reyna
2026-08-09 21:35:52 -04:00
parent 6e8a578e86
commit 2f181ff4f1
25 changed files with 2395 additions and 436 deletions
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/env python3
"""CLI tool for VoiceAgent to interact with the Companion Web UI and Browser.
Commands:
python bin/web_tool.py open [url] - Open a URL (or http://localhost:8888) in macOS default browser
python bin/web_tool.py show <filepath> - Display a workspace file visually in the Web UI drawer
python bin/web_tool.py launch - Launch the Companion Web UI in default browser
"""
import json
import os
import sys
import urllib.request
import webbrowser
from pathlib import Path
DEFAULT_WEB_URL = "http://localhost:8888"
def open_browser(url: str = DEFAULT_WEB_URL):
if not url.startswith("http://") and not url.startswith("https://"):
url = "http://" + url
try:
os.system(f'open "{url}"')
print(f"Opened {url} in default browser.")
return True
except Exception as e:
print(f"Could not open browser: {e}")
return False
def show_file_in_web_ui(filepath: str, web_url: str = DEFAULT_WEB_URL):
try:
req_url = f"{web_url}/api/show_file"
data = json.dumps({"path": filepath}).encode("utf-8")
req = urllib.request.Request(req_url, data=data, headers={"Content-Type": "application/json"})
with urllib.request.urlopen(req, timeout=3.0) as resp:
if resp.status == 200:
print(f"File '{filepath}' sent to Web UI drawer.")
return True
except Exception as e:
print(f"Could not notify Web UI server: {e}")
# Fall back to opening file directly
abs_path = Path(filepath).expanduser().resolve()
if abs_path.exists():
os.system(f'open "{abs_path}"')
print(f"Opened {abs_path} locally.")
return True
print(f"File not found: {filepath}")
return False
def main():
if len(sys.argv) < 2:
open_browser(DEFAULT_WEB_URL)
return
cmd = sys.argv[1].lower()
if cmd in ("open", "browser", "launch"):
target_url = sys.argv[2] if len(sys.argv) >= 3 else DEFAULT_WEB_URL
open_browser(target_url)
elif cmd in ("show", "refer", "file", "view"):
if len(sys.argv) < 3:
print("Usage: python bin/web_tool.py show <filepath>")
sys.exit(1)
filepath = sys.argv[2]
show_file_in_web_ui(filepath)
else:
# Treat single argument as URL or Filepath
arg = sys.argv[1]
if arg.startswith("http://") or arg.startswith("https://") or "localhost" in arg:
open_browser(arg)
else:
show_file_in_web_ui(arg)
if __name__ == "__main__":
main()