agentwire-dev 1.33.0__tar.gz → 1.35.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.
- agentwire_dev-1.35.0/.github/workflows/tts-smoke.yml +104 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/CHANGELOG.md +1 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/PKG-INFO +9 -7
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/README.md +5 -5
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/__init__.py +1 -1
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/__main__.py +388 -89
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/completion.py +18 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/config.py +30 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/idle-handler.sh +7 -0
- agentwire_dev-1.35.0/agentwire/limits_cli.py +191 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/mcp_server.py +7 -3
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/onboarding.py +8 -4
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/overnight.py +5 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/init.md +4 -4
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/scheduler.py +54 -4
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/server.py +225 -112
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/announcements.json +17 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/css/desktop.css +24 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/sessions-section.js +55 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/desktop.html +2 -1
- agentwire_dev-1.35.0/agentwire/tts/audio.py +22 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/base.py +2 -1
- agentwire_dev-1.35.0/agentwire/tts/engines/__init__.py +27 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/kokoro.py +85 -32
- agentwire_dev-1.35.0/agentwire/tts/local.py +149 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/registry.py +14 -11
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts_server.py +42 -26
- agentwire_dev-1.35.0/agentwire/usage_limit.py +652 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/INDEX.md +5 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/architecture.md +2 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/glossary.md +1 -1
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/internals/troubleshooting.md +11 -1
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/quickstart.md +13 -5
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/sessions/pi.md +5 -9
- agentwire_dev-1.35.0/docs/wiki/sessions/window-sizing.md +102 -0
- agentwire_dev-1.35.0/docs/wiki/usage-limit-recovery.md +164 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/voice/shim-contract.md +2 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/voice/tts-self-hosted.md +7 -7
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/pyproject.toml +9 -2
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_build_agent_command.py +3 -3
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_idle_handler.py +21 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_server_async.py +44 -0
- agentwire_dev-1.35.0/tests/unit/test_terminal_resize.py +71 -0
- agentwire_dev-1.35.0/tests/unit/test_tts_engine_resolution.py +54 -0
- agentwire_dev-1.35.0/tests/unit/test_tts_local.py +297 -0
- agentwire_dev-1.35.0/tests/unit/test_usage_limit.py +666 -0
- agentwire_dev-1.33.0/agentwire/search.py +0 -164
- agentwire_dev-1.33.0/agentwire/tts/engines/__init__.py +0 -18
- agentwire_dev-1.33.0/tests/unit/test_search.py +0 -196
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.github/FUNDING.yml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/.gitignore +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/CLA.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/CODE_OF_CONDUCT.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/CONTRIBUTING.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/Dockerfile.local +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/Dockerfile.runpod +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/LICENSE +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/RELEASING.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/SECURITY.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/SPONSORS.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/agents/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/agents/base.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/agents/tmux.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/cached_status.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/channels/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/channels/base.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/channels/email.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/channels/quo.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/cli_safety.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/council/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/council/cli.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/council/inbox.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/council/state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/fetch.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/git_state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/instructions.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/parser.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/renderer.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/handoff/schema.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/history.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/agentwire-permission.sh +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/audit_logger.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/bash-tool-damage-control.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/edit-tool-damage-control.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/agentwire.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/aws.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/cloud-hosting.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/containers.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/core.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/databases.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/firebase.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/gcp.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/git.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/gws.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/infrastructure.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/rules/remote.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/damage-control/write-tool-damage-control.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/hooks/queue-processor.sh +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/listen.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/locking.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/cli.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/config.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/dispatcher.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/eligibility.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/feedback_router.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/gc.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/github.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/naming.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/missions/state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/network.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/pane_manager.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/project_config.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/projects.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/prompts/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/prompts/init.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/agentwire.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/chatbot.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-brain.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-conscience.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-critic.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-devils-advocate.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-gut.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-historian.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-member.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/council-orchestrator.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/notifications.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/orchestrator.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/soul.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/task-runner.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/voice.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/roles/worker.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/safety/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/safety/_core.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/scratchpad.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/security.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/services.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/session_ready.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-Echo--black.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-Echo--transparent.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-Echo.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-email-banner.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--full--transparent-top.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--full-black.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--telephone-fg.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--transparent-top.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--transparent.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/agentwire-splash-logo-layers.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/favicon.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/android.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/automaton.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/bot.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/cyborg.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/droid.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/drone.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/guardian.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/mech.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/probe.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/robot.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/sentinel.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/machines/unit.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/blob.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/cloud.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/crystal.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/cyclops.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/flame.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/fuzzy.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/horned.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/moon.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/slime.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/star.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/tentacle.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/projects/winged.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/bear.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/cat.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/crown.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/custom/agentwire-portal.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/custom/agentwire-tts.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/custom/agentwire.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/deer.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/drone.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/eagle.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/fox.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/hawk.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/horse.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/lion.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/rabbit.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/robot.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/tiger.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/icons/sessions/wolf.jpeg +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/.gitkeep +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/announcement-modal.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/api.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/artifact-window.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/collage.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/command-palette.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/components/icon-picker.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/components/list-card.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/components/type-tag.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/dead-key-suppressor.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/desktop-manager.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/desktop.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/icon-manager.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/notification-prefs.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/notifications-panel.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/safety-shared.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/safety-window.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/scratchpad.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/session-id.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/session-window.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/config-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/machines-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/missions-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/projects-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/safety-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar/services-section.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/sidebar.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/terminal-font-prefs.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/tile-manager.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/token-modal.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/utils/ansi.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/utils/auto-refresh.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/voice/browser-stt.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/voice/browser-tts.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/voice/jargon.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/voice/prompt.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/static/js/winbox.bundle.min.js +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/stt/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/stt/base.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/stt/server_backend.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/stt/stt_server.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tasks.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/base.html +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/email_notification.html +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/handoff/theme.css.j2 +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templates/tmux.conf +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/templating.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/aws.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/docker.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/gcp.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/gh.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/git.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/gws.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/kubectl.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/npm.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/terraform.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tooldefs/uv.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/chatterbox.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/qwen_base.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/qwen_custom.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/qwen_design.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tts/engines/zonos.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/tunnels.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/__init__.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/chunker.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/file_io.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/paths.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/speech.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/utils/subprocess.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/validation.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voiceclone.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voices/darren.wav +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voices/default.wav +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voices/jessica.wav +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voices/lisa.wav +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/voices/may.wav +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/agentwire/worktree.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/decisions/obsidian-second-brain.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/logo.png +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/communication/channels.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/communication/hammerspoon.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/communication/handoff.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/concepts.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/council.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/deployment/remote-access.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/deployment/remote-machines.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/internals/damage-control.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/internals/portal.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/internals/shell-escaping.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/internals/window-collage.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/missions.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/services.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/docs/wiki/voice/stt-self-hosted.md +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/requirements-tts.txt +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/templates/launchd/dev.agentwire.mission-dispatcher.plist +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/templates/launchd/dev.agentwire.mission-feedback-router.plist +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/templates/launchd/dev.agentwire.mission-janitor.plist +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/conftest.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/e2e/test_portal_ui.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/fixtures/sample_agentwire.yml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/fixtures/sample_config.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/fixtures/sample_scheduler.yaml +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/integration/test_missions_concurrency.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/integration/test_missions_lifecycle.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/integration/test_scheduler_board.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/integration/test_server_websockets.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_announcements.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_channels.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_cli_commands.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_cli_output.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_cli_safety.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_config.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_council_cli.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_council_inbox.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_council_state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_damage_control_hooks.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_damage_control_sync.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_file_io.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_handoff_git_state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_handoff_instructions.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_handoff_parser.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_handoff_renderer.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_history.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_hooks_install.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_locking.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_mcp_server.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_mcp_tools_args.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_cli.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_config.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_dispatcher.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_eligibility.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_feedback_router.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_gc.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_github.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_naming.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_missions_state.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_overnight_resume_flags.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_portal_api.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_project_config.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_roles.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_safety_disabled_rules.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_safety_escape_hatch.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_safety_kill_switch.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_safety_mission_worker.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_scheduler.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_scheduler_parsing.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_scratchpad.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_security.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_server_pure.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_services.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_session_ready.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_speech_tags.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_stt_backend.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_tasks.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_templating.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_tmux_template.py +0 -0
- {agentwire_dev-1.33.0 → agentwire_dev-1.35.0}/tests/unit/test_worktree.py +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Kokoro default-tier TTS smoke tests (#269).
|
|
2
|
+
#
|
|
3
|
+
# Guards the three packaging promises behind "one-click good voice":
|
|
4
|
+
# 1. the kokoro import path stays torch-free on every OS
|
|
5
|
+
# 2. the dependency set resolves to wheels for Intel macs (onnxruntime
|
|
6
|
+
# publishes arm64-only current wheels; pip must fall back cleanly)
|
|
7
|
+
# 3. a fresh install can actually synthesize audio
|
|
8
|
+
name: tts-smoke
|
|
9
|
+
|
|
10
|
+
on:
|
|
11
|
+
push:
|
|
12
|
+
branches: [main]
|
|
13
|
+
paths:
|
|
14
|
+
- "pyproject.toml"
|
|
15
|
+
- "agentwire/tts/**"
|
|
16
|
+
- ".github/workflows/tts-smoke.yml"
|
|
17
|
+
pull_request:
|
|
18
|
+
paths:
|
|
19
|
+
- "pyproject.toml"
|
|
20
|
+
- "agentwire/tts/**"
|
|
21
|
+
- ".github/workflows/tts-smoke.yml"
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
torchless-import:
|
|
25
|
+
name: torch-less import (${{ matrix.os }})
|
|
26
|
+
runs-on: ${{ matrix.os }}
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
- uses: actions/setup-python@v5
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.12"
|
|
36
|
+
- name: Install base package
|
|
37
|
+
run: pip install .
|
|
38
|
+
- name: Import kokoro engine without torch
|
|
39
|
+
# Windows is scoped to this import only — the portal/CLI use
|
|
40
|
+
# fcntl/pty and don't support Windows; the kokoro path must still
|
|
41
|
+
# install and import there.
|
|
42
|
+
run: >
|
|
43
|
+
python -c "import sys;
|
|
44
|
+
import agentwire.tts.engines.kokoro;
|
|
45
|
+
import agentwire.tts.local;
|
|
46
|
+
assert 'torch' not in sys.modules, 'torch leaked into the kokoro import path';
|
|
47
|
+
assert 'agentwire.tts.engines.chatterbox' not in sys.modules, 'chatterbox eagerly imported';
|
|
48
|
+
print('torch-free kokoro import OK')"
|
|
49
|
+
|
|
50
|
+
intel-mac-wheels:
|
|
51
|
+
name: Intel-mac wheel resolution
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/setup-python@v5
|
|
55
|
+
with:
|
|
56
|
+
python-version: "3.12"
|
|
57
|
+
- name: Resolve kokoro-onnx wheels for macosx x86_64
|
|
58
|
+
# Verifies pip can resolve the full kokoro-onnx dependency tree to
|
|
59
|
+
# binary wheels for Intel macs (macOS 13+). Current onnxruntime
|
|
60
|
+
# releases are arm64-only; resolution must fall back to an older
|
|
61
|
+
# x86_64 wheel (kokoro-onnx allows >=1.20.1).
|
|
62
|
+
run: |
|
|
63
|
+
pip download kokoro-onnx \
|
|
64
|
+
--platform macosx_13_0_x86_64 \
|
|
65
|
+
--only-binary=:all: \
|
|
66
|
+
--python-version 3.12 \
|
|
67
|
+
-d /tmp/intel-mac-wheels
|
|
68
|
+
ls /tmp/intel-mac-wheels
|
|
69
|
+
|
|
70
|
+
synthesis:
|
|
71
|
+
name: synthesis smoke (${{ matrix.os }})
|
|
72
|
+
runs-on: ${{ matrix.os }}
|
|
73
|
+
strategy:
|
|
74
|
+
fail-fast: false
|
|
75
|
+
matrix:
|
|
76
|
+
os: [ubuntu-latest, macos-latest]
|
|
77
|
+
steps:
|
|
78
|
+
- uses: actions/checkout@v4
|
|
79
|
+
- uses: actions/setup-python@v5
|
|
80
|
+
with:
|
|
81
|
+
python-version: "3.12"
|
|
82
|
+
- name: Cache Kokoro model files
|
|
83
|
+
uses: actions/cache@v4
|
|
84
|
+
with:
|
|
85
|
+
path: ~/.cache/kokoro_onnx
|
|
86
|
+
key: kokoro-model-files-v1.0-fp16
|
|
87
|
+
- name: Install base package
|
|
88
|
+
run: pip install .
|
|
89
|
+
- name: Synthesize a sentence
|
|
90
|
+
run: |
|
|
91
|
+
python - <<'EOF'
|
|
92
|
+
from agentwire.tts.engines.kokoro import KokoroEngine
|
|
93
|
+
from agentwire.tts.base import TTSRequest
|
|
94
|
+
from agentwire.tts.audio import pcm_float_to_wav_bytes
|
|
95
|
+
|
|
96
|
+
KokoroEngine.download_models()
|
|
97
|
+
engine = KokoroEngine()
|
|
98
|
+
result = engine.generate(
|
|
99
|
+
TTSRequest(text="AgentWire speaks with Kokoro out of the box.", voice="af_heart")
|
|
100
|
+
)
|
|
101
|
+
wav = pcm_float_to_wav_bytes(result.audio, result.sample_rate)
|
|
102
|
+
assert wav[:4] == b"RIFF" and len(wav) > 50_000, f"suspicious WAV ({len(wav)} bytes)"
|
|
103
|
+
print(f"synthesized {len(wav)} bytes of WAV at {result.sample_rate}Hz")
|
|
104
|
+
EOF
|
|
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
|
|
17
17
|
### Added
|
|
18
18
|
|
|
19
|
+
- **Kokoro-82M is the default voice** — `tts.backend: default` now speaks via an in-process Kokoro engine (CPU ONNX, torch-free, 32 presets / 8 languages), bundled with the base install (`kokoro-onnx`, py<3.14). The portal downloads the model (~200 MB, one-time, atomic) in the background on first start with a progress toast; browser `speechSynthesis` covers speech until ready and remains the last-resort fallback (model unavailable / py3.14+). No-browser playback upgraded from `say`/`espeak` to Kokoro on local speakers. New `agentwire tts warm` pre-downloads for headless setups; `agentwire tts status` reports default-tier model state; `/api/voice-status` exposes `tts.kokoro {state, percent}`; `/api/voices` + `voiceclone list` surface the presets. The `custom` shim tier is unchanged (chatterbox venvs now need Python 3.13+ — numpy 2 gate). `audio_done` timing now parses real WAV duration instead of a 2x-off stereo estimate. Issue [#269](https://github.com/dotdevdotdev/agentwire-dev/issues/269)
|
|
19
20
|
- **Shareable conversation handoffs** — `agentwire handoff` produces two artifacts from one conversation: `ai-handoff.md` (XML-tagged markdown a teammate can paste into another LLM) and `show-the-story.html` (single-file presentation with tabs and scroll-slides) — issue [#157](https://github.com/dotdevdotdev/agentwire-dev/issues/157)
|
|
20
21
|
- In-conversation agent does the distillation (free — uses existing context, no fresh LLM call); CLI/MCP just renders deterministically via Jinja2
|
|
21
22
|
- `/handoff` slash command walks the agent through filling the template, picking a vibe-matched theme (palette, fonts, motion), and rendering
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentwire-dev
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.35.0
|
|
4
4
|
Summary: Multi-session voice web interface for AI coding agents
|
|
5
5
|
Project-URL: Homepage, https://agentwire.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/dotdevdotdev/agentwire-dev
|
|
@@ -688,8 +688,10 @@ Requires-Dist: aiohttp-jinja2>=1.6
|
|
|
688
688
|
Requires-Dist: aiohttp>=3.9.0
|
|
689
689
|
Requires-Dist: av>=12.0.0
|
|
690
690
|
Requires-Dist: jinja2>=3.1.0
|
|
691
|
+
Requires-Dist: kokoro-onnx>=0.4.9; python_version < '3.14'
|
|
691
692
|
Requires-Dist: markdown>=3.5
|
|
692
693
|
Requires-Dist: mcp>=1.2.0
|
|
694
|
+
Requires-Dist: pydantic>=2.0.0
|
|
693
695
|
Requires-Dist: python-dotenv>=1.0.0
|
|
694
696
|
Requires-Dist: pyyaml>=6.0
|
|
695
697
|
Requires-Dist: requests>=2.28.0
|
|
@@ -706,7 +708,7 @@ Requires-Dist: soundfile>=0.12.0; extra == 'stt'
|
|
|
706
708
|
Requires-Dist: useful-moonshine-onnx>=20250101; extra == 'stt'
|
|
707
709
|
Requires-Dist: uvicorn>=0.24.0; extra == 'stt'
|
|
708
710
|
Provides-Extra: tts
|
|
709
|
-
Requires-Dist: chatterbox-tts>=0.1.6; extra == 'tts'
|
|
711
|
+
Requires-Dist: chatterbox-tts>=0.1.6; (python_version >= '3.13') and extra == 'tts'
|
|
710
712
|
Requires-Dist: fastapi>=0.104.0; extra == 'tts'
|
|
711
713
|
Requires-Dist: faster-whisper>=1.0.0; extra == 'tts'
|
|
712
714
|
Requires-Dist: pydantic>=2.0.0; extra == 'tts'
|
|
@@ -778,7 +780,7 @@ agentwire portal start
|
|
|
778
780
|
|
|
779
781
|
**Requirements:** Python 3.10+, tmux, ffmpeg, Claude Code
|
|
780
782
|
|
|
781
|
-
**Honest setup time:** under a minute to a working voice portal (
|
|
783
|
+
**Honest setup time:** under a minute to a working voice portal with a genuinely good voice — Kokoro-82M runs on CPU out of the box (one-time ~200 MB model download in the background; the browser voice covers the wait). ~15 minutes for the full experience: cloned voices via a self-hosted TTS shim, Whisper-grade transcription, phone-from-anywhere (certs + token).
|
|
782
784
|
|
|
783
785
|
> **Network & trust model.** The portal binds `127.0.0.1` by default — local only. To use it from your phone, set `server.host: 0.0.0.0` in `~/.agentwire/config.yaml`. Non-loopback binds require an auth token (auto-generated on first start; print it with `agentwire portal token`) — your phone prompts for it once, then remembers it. Origin checks reject cross-site browser requests on every bind. Still: keep it on a trusted LAN. Never port-forward it or run it on a public-facing VPS — for internet access use Cloudflare Tunnel + Zero Trust. Details in [SECURITY.md](SECURITY.md).
|
|
784
786
|
|
|
@@ -836,7 +838,7 @@ Visit `http://127.0.0.1:8765` in Chrome (or your phone/tablet with LAN access co
|
|
|
836
838
|
Hold the mic button, speak your request, release. In instant mode the transcript appears for a quick glance — Enter sends it to Claude Code.
|
|
837
839
|
|
|
838
840
|
**4. Listen:**
|
|
839
|
-
Agent responses are spoken back —
|
|
841
|
+
Agent responses are spoken back — Kokoro neural voice out of the box, or any TTS model behind a custom shim.
|
|
840
842
|
|
|
841
843
|
---
|
|
842
844
|
|
|
@@ -887,9 +889,9 @@ All decisions logged for audit trails.
|
|
|
887
889
|
|
|
888
890
|
Two tiers, both sides:
|
|
889
891
|
|
|
890
|
-
**`default` (zero setup, what a fresh install gets):** Chrome speech recognition in,
|
|
892
|
+
**`default` (zero setup, what a fresh install gets):** Chrome speech recognition in, **Kokoro-82M out** — a genuinely good neural voice (top of the TTS Arena at 82M params), 32 preset voices across 8 languages, pure CPU, identical on every OS. The model (~200 MB) downloads in the background on first portal start; browser speechSynthesis covers speech until it's ready (and remains the last-resort fallback). No GPU, no certs, no commands.
|
|
891
893
|
|
|
892
|
-
**`custom` (bring your own model):** any HTTP shim implementing the [voice shim contract](docs/wiki/voice/shim-contract.md) — ~30 lines wraps anything (Deepgram, whisper.cpp, an expressive emotion-tag model). The bundled servers are reference shims:
|
|
894
|
+
**`custom` (bring your own model):** any HTTP shim implementing the [voice shim contract](docs/wiki/voice/shim-contract.md) — ~30 lines wraps anything (Deepgram, whisper.cpp, an expressive emotion-tag model). Voice cloning, GPU engines, emotion control live here. The bundled servers are reference shims:
|
|
893
895
|
|
|
894
896
|
```yaml
|
|
895
897
|
# ~/.agentwire/config.yaml
|
|
@@ -910,7 +912,7 @@ Shims can declare capabilities (emotion tags, style instructions) via `GET /capa
|
|
|
910
912
|
|
|
911
913
|
Instant mode already needs nothing — just don't press the mic. Agent speech
|
|
912
914
|
plays through the browser; mute the tab (or close it — with no browser
|
|
913
|
-
connected
|
|
915
|
+
connected, speech plays on local speakers, which you can silence at the
|
|
914
916
|
system level).
|
|
915
917
|
|
|
916
918
|
</details>
|
|
@@ -59,7 +59,7 @@ agentwire portal start
|
|
|
59
59
|
|
|
60
60
|
**Requirements:** Python 3.10+, tmux, ffmpeg, Claude Code
|
|
61
61
|
|
|
62
|
-
**Honest setup time:** under a minute to a working voice portal (
|
|
62
|
+
**Honest setup time:** under a minute to a working voice portal with a genuinely good voice — Kokoro-82M runs on CPU out of the box (one-time ~200 MB model download in the background; the browser voice covers the wait). ~15 minutes for the full experience: cloned voices via a self-hosted TTS shim, Whisper-grade transcription, phone-from-anywhere (certs + token).
|
|
63
63
|
|
|
64
64
|
> **Network & trust model.** The portal binds `127.0.0.1` by default — local only. To use it from your phone, set `server.host: 0.0.0.0` in `~/.agentwire/config.yaml`. Non-loopback binds require an auth token (auto-generated on first start; print it with `agentwire portal token`) — your phone prompts for it once, then remembers it. Origin checks reject cross-site browser requests on every bind. Still: keep it on a trusted LAN. Never port-forward it or run it on a public-facing VPS — for internet access use Cloudflare Tunnel + Zero Trust. Details in [SECURITY.md](SECURITY.md).
|
|
65
65
|
|
|
@@ -117,7 +117,7 @@ Visit `http://127.0.0.1:8765` in Chrome (or your phone/tablet with LAN access co
|
|
|
117
117
|
Hold the mic button, speak your request, release. In instant mode the transcript appears for a quick glance — Enter sends it to Claude Code.
|
|
118
118
|
|
|
119
119
|
**4. Listen:**
|
|
120
|
-
Agent responses are spoken back —
|
|
120
|
+
Agent responses are spoken back — Kokoro neural voice out of the box, or any TTS model behind a custom shim.
|
|
121
121
|
|
|
122
122
|
---
|
|
123
123
|
|
|
@@ -168,9 +168,9 @@ All decisions logged for audit trails.
|
|
|
168
168
|
|
|
169
169
|
Two tiers, both sides:
|
|
170
170
|
|
|
171
|
-
**`default` (zero setup, what a fresh install gets):** Chrome speech recognition in,
|
|
171
|
+
**`default` (zero setup, what a fresh install gets):** Chrome speech recognition in, **Kokoro-82M out** — a genuinely good neural voice (top of the TTS Arena at 82M params), 32 preset voices across 8 languages, pure CPU, identical on every OS. The model (~200 MB) downloads in the background on first portal start; browser speechSynthesis covers speech until it's ready (and remains the last-resort fallback). No GPU, no certs, no commands.
|
|
172
172
|
|
|
173
|
-
**`custom` (bring your own model):** any HTTP shim implementing the [voice shim contract](docs/wiki/voice/shim-contract.md) — ~30 lines wraps anything (Deepgram, whisper.cpp, an expressive emotion-tag model). The bundled servers are reference shims:
|
|
173
|
+
**`custom` (bring your own model):** any HTTP shim implementing the [voice shim contract](docs/wiki/voice/shim-contract.md) — ~30 lines wraps anything (Deepgram, whisper.cpp, an expressive emotion-tag model). Voice cloning, GPU engines, emotion control live here. The bundled servers are reference shims:
|
|
174
174
|
|
|
175
175
|
```yaml
|
|
176
176
|
# ~/.agentwire/config.yaml
|
|
@@ -191,7 +191,7 @@ Shims can declare capabilities (emotion tags, style instructions) via `GET /capa
|
|
|
191
191
|
|
|
192
192
|
Instant mode already needs nothing — just don't press the mic. Agent speech
|
|
193
193
|
plays through the browser; mute the tab (or close it — with no browser
|
|
194
|
-
connected
|
|
194
|
+
connected, speech plays on local speakers, which you can silence at the
|
|
195
195
|
system level).
|
|
196
196
|
|
|
197
197
|
</details>
|