Files
UmbraAudio/infra/remote_credential_broker/askpass_helper.py
B.D. Murphy 0c9bea72e0 Add enterprise/infra tooling and repoint Qwen3-TTS submodule to internal fork
Two groups of changes, committed together as the follow-up to the initial push:

1. .gitmodules — submodule Qwen3-TTS now points at the internal Gitea fork
   (ssh://git@mini-eq:2222/umbragit/Qwen3-TTS.git) instead of upstream GitHub,
   so a clone actually gets the UmbraAudio branding/integration commit
   012e452 rather than vanilla upstream.

2. New infra/ tooling for the cross-machine work in spec 21: agent_bridge,
   remote_credential_broker (Keychain-backed, secrets read at runtime and
   generated via read_secret/random_secret — no hardcoded credentials), the
   enterprise bootstrap scripts, and the oldbox SSH/auth prompts. Plus
   backup/ restore scripts, two specs (18 UmbraTrans, 19 enterprise control
   plane), umbraaudio/voices/lmstudio_gate.py, and in-flight edits to the
   discovery/attribution/profiling modules, config, chapter_builder, emotion,
   pronunciation, qwen_tts and routes.

Also adds *.db to .gitignore: SQLite project databases are runtime state and no
.db file was tracked before.

Verified before staging: .env's only change is UMBRA_TTS__QWEN_TTS_HELPER_URL and
the committed copy has zero secret-looking values; the broker ships only
config.example.json.
2026-10-06 06:57:41 -07:00

30 lines
776 B
Python
Executable File

#!/usr/bin/env python3
from __future__ import annotations
import os
import socket
import sys
def main() -> int:
socket_path = os.environ.get("UMBRA_BROKER_ASKPASS_SOCKET", "")
if not socket_path:
print("credential broker: askpass socket is not configured", file=sys.stderr)
return 2
try:
with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as channel:
channel.connect(socket_path)
secret = channel.recv(4096)
except OSError as exc:
print(f"credential broker: askpass channel failed: {exc}", file=sys.stderr)
return 1
if not secret:
return 1
sys.stdout.buffer.write(secret)
sys.stdout.buffer.flush()
return 0
if __name__ == "__main__":
raise SystemExit(main())