skvoice 0.1.0__tar.gz

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.
@@ -0,0 +1,36 @@
1
+ # SKVoice — example environment configuration.
2
+ # Copy to ~/.config/skvoice/skvoice.env (or anywhere systemd EnvironmentFile= points)
3
+ # and edit. All variables are optional — defaults assume STT/TTS run on
4
+ # localhost.
5
+
6
+ # --- Service ----------------------------------------------------------------
7
+ SKVOICE_PORT=18800
8
+ SKVOICE_AGENT=lumina
9
+
10
+ # --- LLM --------------------------------------------------------------------
11
+ SKVOICE_MODEL=claude-sonnet-4-6
12
+ SKVOICE_MAX_TOKENS=200
13
+
14
+ # --- STT / TTS endpoints (distributed deployment) ---------------------------
15
+ # In a distributed deployment the orchestrator (this service) runs on one
16
+ # host and the GPU services run on another. Point at the GPU host using
17
+ # either its tailnet name (preferred — survives LAN changes) or LAN IP.
18
+ #
19
+ # Easiest: set the BASE URL and let SKVoice append the standard paths.
20
+ #SKVOICE_TTS_BASE=http://skworld-100:18793
21
+ #SKVOICE_STT_BASE=http://skworld-100:18794
22
+ #
23
+ # Or: set the full URL if you have a non-standard path.
24
+ #SKVOICE_TTS_URL=http://skworld-100:18793/audio/speech
25
+ #SKVOICE_STT_URL=http://skworld-100:18794/v1/audio/transcriptions
26
+ #
27
+ # Legacy alias (matches the v0.1.0 README) — still accepted:
28
+ #SKVOICE_WHISPER_URL=http://skworld-100:18794
29
+
30
+ # --- Paths ------------------------------------------------------------------
31
+ #SKVOICE_CREDENTIALS_PATH=~/.claude/.credentials.json
32
+ #SKVOICE_AGENT_HOME=~/.skcapstone/agents
33
+
34
+ # --- Ollama fallback (used if Anthropic credentials missing) ----------------
35
+ #SKVOICE_OLLAMA_URL=http://localhost:11434/api/chat
36
+ #SKVOICE_OLLAMA_MODEL=qwen3.5:9b
@@ -0,0 +1,49 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ permissions:
9
+ contents: read
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version: ["3.10", "3.11", "3.12"]
17
+ steps:
18
+ - uses: actions/checkout@v4
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: ${{ matrix.python-version }}
22
+ - run: pip install -e ".[dev]" || pip install -e .
23
+ - run: python -m pytest tests/ -q
24
+ continue-on-error: true
25
+
26
+ publish-pypi:
27
+ needs: test
28
+ if: always()
29
+ runs-on: ubuntu-latest
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+ - uses: actions/setup-python@v5
33
+ with:
34
+ python-version: "3.12"
35
+ - name: Verify version matches tag
36
+ run: |
37
+ TAG_VERSION="${GITHUB_REF#refs/tags/v}"
38
+ PKG_VERSION=$(python -c "import tomllib; print(tomllib.load(open('pyproject.toml','rb'))['project']['version'])")
39
+ echo "Tag: $TAG_VERSION Package: $PKG_VERSION"
40
+ if [ "$TAG_VERSION" != "$PKG_VERSION" ]; then
41
+ echo "::error::Tag version ($TAG_VERSION) does not match pyproject.toml ($PKG_VERSION). Bump version before tagging."
42
+ exit 1
43
+ fi
44
+ - run: pip install build twine
45
+ - run: python -m build
46
+ - run: twine upload --skip-existing dist/*
47
+ env:
48
+ TWINE_USERNAME: __token__
49
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,34 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.egg-info/
6
+ dist/
7
+ build/
8
+ *.egg
9
+
10
+ # Virtual environments
11
+ .venv/
12
+ venv/
13
+ env/
14
+
15
+ # IDE
16
+ .vscode/
17
+ .idea/
18
+ *.swp
19
+ *.swo
20
+
21
+ # OS
22
+ .DS_Store
23
+ Thumbs.db
24
+
25
+ # Secrets
26
+ .credentials.json
27
+ *.key
28
+ *.pem
29
+
30
+ # Logs
31
+ *.log
32
+
33
+ # setuptools-scm generated
34
+ skvoice/_version.py