agentwire-dev 1.0.3__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.
Files changed (195) hide show
  1. agentwire_dev-1.0.3/.github/ISSUE_TEMPLATE/bug_report.md +42 -0
  2. agentwire_dev-1.0.3/.github/ISSUE_TEMPLATE/feature_request.md +23 -0
  3. agentwire_dev-1.0.3/.github/ISSUE_TEMPLATE/question.md +22 -0
  4. agentwire_dev-1.0.3/.github/PULL_REQUEST_TEMPLATE.md +45 -0
  5. agentwire_dev-1.0.3/.github/workflows/ci.yml +28 -0
  6. agentwire_dev-1.0.3/.gitignore +52 -0
  7. agentwire_dev-1.0.3/CHANGELOG.md +69 -0
  8. agentwire_dev-1.0.3/CLA.md +54 -0
  9. agentwire_dev-1.0.3/CODE_OF_CONDUCT.md +46 -0
  10. agentwire_dev-1.0.3/CONTRIBUTING.md +184 -0
  11. agentwire_dev-1.0.3/Dockerfile.local +75 -0
  12. agentwire_dev-1.0.3/Dockerfile.runpod +60 -0
  13. agentwire_dev-1.0.3/LICENSE +661 -0
  14. agentwire_dev-1.0.3/PKG-INFO +506 -0
  15. agentwire_dev-1.0.3/README.md +453 -0
  16. agentwire_dev-1.0.3/SECURITY.md +46 -0
  17. agentwire_dev-1.0.3/agentwire/__init__.py +3 -0
  18. agentwire_dev-1.0.3/agentwire/__main__.py +8097 -0
  19. agentwire_dev-1.0.3/agentwire/agents/__init__.py +19 -0
  20. agentwire_dev-1.0.3/agentwire/agents/base.py +96 -0
  21. agentwire_dev-1.0.3/agentwire/agents/tmux.py +438 -0
  22. agentwire_dev-1.0.3/agentwire/cached_status.py +120 -0
  23. agentwire_dev-1.0.3/agentwire/cli_safety.py +517 -0
  24. agentwire_dev-1.0.3/agentwire/completion.py +493 -0
  25. agentwire_dev-1.0.3/agentwire/config.py +465 -0
  26. agentwire_dev-1.0.3/agentwire/errors.py +224 -0
  27. agentwire_dev-1.0.3/agentwire/history.py +426 -0
  28. agentwire_dev-1.0.3/agentwire/hooks/__init__.py +1 -0
  29. agentwire_dev-1.0.3/agentwire/hooks/agentwire-permission.sh +115 -0
  30. agentwire_dev-1.0.3/agentwire/hooks/damage-control/__init__.py +1 -0
  31. agentwire_dev-1.0.3/agentwire/hooks/damage-control/audit_logger.py +234 -0
  32. agentwire_dev-1.0.3/agentwire/hooks/damage-control/bash-tool-damage-control.py +331 -0
  33. agentwire_dev-1.0.3/agentwire/hooks/damage-control/edit-tool-damage-control.py +145 -0
  34. agentwire_dev-1.0.3/agentwire/hooks/damage-control/patterns.yaml +720 -0
  35. agentwire_dev-1.0.3/agentwire/hooks/damage-control/write-tool-damage-control.py +143 -0
  36. agentwire_dev-1.0.3/agentwire/hooks/suppress-bg-notifications.sh +157 -0
  37. agentwire_dev-1.0.3/agentwire/init_agentwire.py +197 -0
  38. agentwire_dev-1.0.3/agentwire/listen.py +376 -0
  39. agentwire_dev-1.0.3/agentwire/locking.py +300 -0
  40. agentwire_dev-1.0.3/agentwire/mcp_server.py +1002 -0
  41. agentwire_dev-1.0.3/agentwire/network.py +205 -0
  42. agentwire_dev-1.0.3/agentwire/notifications.py +392 -0
  43. agentwire_dev-1.0.3/agentwire/onboarding.py +1580 -0
  44. agentwire_dev-1.0.3/agentwire/pane_manager.py +541 -0
  45. agentwire_dev-1.0.3/agentwire/project_config.py +284 -0
  46. agentwire_dev-1.0.3/agentwire/projects.py +235 -0
  47. agentwire_dev-1.0.3/agentwire/prompts/__init__.py +1 -0
  48. agentwire_dev-1.0.3/agentwire/prompts/init.md +155 -0
  49. agentwire_dev-1.0.3/agentwire/roles/__init__.py +238 -0
  50. agentwire_dev-1.0.3/agentwire/roles/chatbot.md +72 -0
  51. agentwire_dev-1.0.3/agentwire/roles/claude-delegation.md +383 -0
  52. agentwire_dev-1.0.3/agentwire/roles/claude-worker.md +72 -0
  53. agentwire_dev-1.0.3/agentwire/roles/glm-delegation.md +438 -0
  54. agentwire_dev-1.0.3/agentwire/roles/glm-worker.md +65 -0
  55. agentwire_dev-1.0.3/agentwire/roles/leader.md +477 -0
  56. agentwire_dev-1.0.3/agentwire/roles/task-runner.md +141 -0
  57. agentwire_dev-1.0.3/agentwire/roles/worker.md +94 -0
  58. agentwire_dev-1.0.3/agentwire/server.py +3803 -0
  59. agentwire_dev-1.0.3/agentwire/static/agentwire-splash--agentwire.png +0 -0
  60. agentwire_dev-1.0.3/agentwire/static/agentwire-splash--full.png +0 -0
  61. agentwire_dev-1.0.3/agentwire/static/agentwire-splash--owl.png +0 -0
  62. agentwire_dev-1.0.3/agentwire/static/agentwire-splash--telephone.png +0 -0
  63. agentwire_dev-1.0.3/agentwire/static/agentwire-splash--tree.png +0 -0
  64. agentwire_dev-1.0.3/agentwire/static/css/desktop.css +2367 -0
  65. agentwire_dev-1.0.3/agentwire/static/favicon.png +0 -0
  66. agentwire_dev-1.0.3/agentwire/static/icons/machines/android.jpeg +0 -0
  67. agentwire_dev-1.0.3/agentwire/static/icons/machines/automaton.jpeg +0 -0
  68. agentwire_dev-1.0.3/agentwire/static/icons/machines/bot.jpeg +0 -0
  69. agentwire_dev-1.0.3/agentwire/static/icons/machines/cyborg.jpeg +0 -0
  70. agentwire_dev-1.0.3/agentwire/static/icons/machines/droid.jpeg +0 -0
  71. agentwire_dev-1.0.3/agentwire/static/icons/machines/drone.jpeg +0 -0
  72. agentwire_dev-1.0.3/agentwire/static/icons/machines/guardian.jpeg +0 -0
  73. agentwire_dev-1.0.3/agentwire/static/icons/machines/mech.jpeg +0 -0
  74. agentwire_dev-1.0.3/agentwire/static/icons/machines/probe.jpeg +0 -0
  75. agentwire_dev-1.0.3/agentwire/static/icons/machines/robot.jpeg +0 -0
  76. agentwire_dev-1.0.3/agentwire/static/icons/machines/sentinel.jpeg +0 -0
  77. agentwire_dev-1.0.3/agentwire/static/icons/machines/unit.jpeg +0 -0
  78. agentwire_dev-1.0.3/agentwire/static/icons/projects/blob.jpeg +0 -0
  79. agentwire_dev-1.0.3/agentwire/static/icons/projects/cloud.jpeg +0 -0
  80. agentwire_dev-1.0.3/agentwire/static/icons/projects/crystal.jpeg +0 -0
  81. agentwire_dev-1.0.3/agentwire/static/icons/projects/cyclops.jpeg +0 -0
  82. agentwire_dev-1.0.3/agentwire/static/icons/projects/flame.jpeg +0 -0
  83. agentwire_dev-1.0.3/agentwire/static/icons/projects/fuzzy.jpeg +0 -0
  84. agentwire_dev-1.0.3/agentwire/static/icons/projects/horned.jpeg +0 -0
  85. agentwire_dev-1.0.3/agentwire/static/icons/projects/moon.jpeg +0 -0
  86. agentwire_dev-1.0.3/agentwire/static/icons/projects/slime.jpeg +0 -0
  87. agentwire_dev-1.0.3/agentwire/static/icons/projects/star.jpeg +0 -0
  88. agentwire_dev-1.0.3/agentwire/static/icons/projects/tentacle.jpeg +0 -0
  89. agentwire_dev-1.0.3/agentwire/static/icons/projects/winged.jpeg +0 -0
  90. agentwire_dev-1.0.3/agentwire/static/icons/sessions/bear.jpeg +0 -0
  91. agentwire_dev-1.0.3/agentwire/static/icons/sessions/cat.jpeg +0 -0
  92. agentwire_dev-1.0.3/agentwire/static/icons/sessions/crown.jpeg +0 -0
  93. agentwire_dev-1.0.3/agentwire/static/icons/sessions/custom/agentwire-portal.png +0 -0
  94. agentwire_dev-1.0.3/agentwire/static/icons/sessions/custom/agentwire-tts.png +0 -0
  95. agentwire_dev-1.0.3/agentwire/static/icons/sessions/custom/agentwire.png +0 -0
  96. agentwire_dev-1.0.3/agentwire/static/icons/sessions/deer.jpeg +0 -0
  97. agentwire_dev-1.0.3/agentwire/static/icons/sessions/drone.jpeg +0 -0
  98. agentwire_dev-1.0.3/agentwire/static/icons/sessions/eagle.jpeg +0 -0
  99. agentwire_dev-1.0.3/agentwire/static/icons/sessions/fox.jpeg +0 -0
  100. agentwire_dev-1.0.3/agentwire/static/icons/sessions/hawk.jpeg +0 -0
  101. agentwire_dev-1.0.3/agentwire/static/icons/sessions/horse.jpeg +0 -0
  102. agentwire_dev-1.0.3/agentwire/static/icons/sessions/lion.jpeg +0 -0
  103. agentwire_dev-1.0.3/agentwire/static/icons/sessions/rabbit.jpeg +0 -0
  104. agentwire_dev-1.0.3/agentwire/static/icons/sessions/robot.jpeg +0 -0
  105. agentwire_dev-1.0.3/agentwire/static/icons/sessions/tiger.jpeg +0 -0
  106. agentwire_dev-1.0.3/agentwire/static/icons/sessions/wolf.jpeg +0 -0
  107. agentwire_dev-1.0.3/agentwire/static/js/.gitkeep +0 -0
  108. agentwire_dev-1.0.3/agentwire/static/js/components/icon-picker.js +136 -0
  109. agentwire_dev-1.0.3/agentwire/static/js/components/list-card.js +156 -0
  110. agentwire_dev-1.0.3/agentwire/static/js/components/type-tag.js +45 -0
  111. agentwire_dev-1.0.3/agentwire/static/js/desktop-manager.js +758 -0
  112. agentwire_dev-1.0.3/agentwire/static/js/desktop.js +481 -0
  113. agentwire_dev-1.0.3/agentwire/static/js/icon-manager.js +284 -0
  114. agentwire_dev-1.0.3/agentwire/static/js/list-window.js +278 -0
  115. agentwire_dev-1.0.3/agentwire/static/js/session-window.js +1168 -0
  116. agentwire_dev-1.0.3/agentwire/static/js/utils/auto-refresh.js +64 -0
  117. agentwire_dev-1.0.3/agentwire/static/js/winbox.bundle.min.js +34 -0
  118. agentwire_dev-1.0.3/agentwire/static/js/windows/chat-window.js +612 -0
  119. agentwire_dev-1.0.3/agentwire/static/js/windows/config-window.js +102 -0
  120. agentwire_dev-1.0.3/agentwire/static/js/windows/machines-window.js +437 -0
  121. agentwire_dev-1.0.3/agentwire/static/js/windows/projects-window.js +1340 -0
  122. agentwire_dev-1.0.3/agentwire/static/js/windows/sessions-window.js +376 -0
  123. agentwire_dev-1.0.3/agentwire/stt/__init__.py +41 -0
  124. agentwire_dev-1.0.3/agentwire/stt/base.py +26 -0
  125. agentwire_dev-1.0.3/agentwire/stt/whisperkit.py +90 -0
  126. agentwire_dev-1.0.3/agentwire/tasks.py +399 -0
  127. agentwire_dev-1.0.3/agentwire/templates/__init__.py +1 -0
  128. agentwire_dev-1.0.3/agentwire/templates/base.html +17 -0
  129. agentwire_dev-1.0.3/agentwire/templates/desktop.html +75 -0
  130. agentwire_dev-1.0.3/agentwire/templates/email_notification.html +256 -0
  131. agentwire_dev-1.0.3/agentwire/templating.py +196 -0
  132. agentwire_dev-1.0.3/agentwire/tts/__init__.py +13 -0
  133. agentwire_dev-1.0.3/agentwire/tts/base.py +107 -0
  134. agentwire_dev-1.0.3/agentwire/tts/engines/__init__.py +13 -0
  135. agentwire_dev-1.0.3/agentwire/tts/engines/chatterbox.py +165 -0
  136. agentwire_dev-1.0.3/agentwire/tts/engines/qwen_base.py +193 -0
  137. agentwire_dev-1.0.3/agentwire/tts/engines/qwen_custom.py +189 -0
  138. agentwire_dev-1.0.3/agentwire/tts/engines/qwen_design.py +170 -0
  139. agentwire_dev-1.0.3/agentwire/tts/registry.py +136 -0
  140. agentwire_dev-1.0.3/agentwire/tts/runpod_handler.py +350 -0
  141. agentwire_dev-1.0.3/agentwire/tts_server.py +389 -0
  142. agentwire_dev-1.0.3/agentwire/tunnels.py +376 -0
  143. agentwire_dev-1.0.3/agentwire/utils/__init__.py +37 -0
  144. agentwire_dev-1.0.3/agentwire/utils/file_io.py +146 -0
  145. agentwire_dev-1.0.3/agentwire/utils/paths.py +100 -0
  146. agentwire_dev-1.0.3/agentwire/utils/subprocess.py +128 -0
  147. agentwire_dev-1.0.3/agentwire/validation.py +360 -0
  148. agentwire_dev-1.0.3/agentwire/voiceclone.py +464 -0
  149. agentwire_dev-1.0.3/agentwire/voices/darren.wav +0 -0
  150. agentwire_dev-1.0.3/agentwire/voices/default.wav +0 -0
  151. agentwire_dev-1.0.3/agentwire/voices/jessica.wav +0 -0
  152. agentwire_dev-1.0.3/agentwire/voices/lisa.wav +0 -0
  153. agentwire_dev-1.0.3/agentwire/voices/may.wav +0 -0
  154. agentwire_dev-1.0.3/agentwire/worktree.py +197 -0
  155. agentwire_dev-1.0.3/docs/PORTAL.md +350 -0
  156. agentwire_dev-1.0.3/docs/SHELL_ESCAPING.md +174 -0
  157. agentwire_dev-1.0.3/docs/TROUBLESHOOTING.md +512 -0
  158. agentwire_dev-1.0.3/docs/brainstorms/README.md +23 -0
  159. agentwire_dev-1.0.3/docs/brainstorms/idea-ambient-context-stream.md +129 -0
  160. agentwire_dev-1.0.3/docs/brainstorms/idea-audio-cues.md +420 -0
  161. agentwire_dev-1.0.3/docs/brainstorms/idea-context-compression-protocol.md +535 -0
  162. agentwire_dev-1.0.3/docs/brainstorms/idea-contextual-bookmarks.md +412 -0
  163. agentwire_dev-1.0.3/docs/brainstorms/idea-conversation-archaeology.md +135 -0
  164. agentwire_dev-1.0.3/docs/brainstorms/idea-failure-memory.md +421 -0
  165. agentwire_dev-1.0.3/docs/brainstorms/idea-presence-aware-sessions.md +477 -0
  166. agentwire_dev-1.0.3/docs/brainstorms/idea-session-replay.md +247 -0
  167. agentwire_dev-1.0.3/docs/brainstorms/idea-session-snapshots.md +137 -0
  168. agentwire_dev-1.0.3/docs/brainstorms/idea-session-templates.md +343 -0
  169. agentwire_dev-1.0.3/docs/brainstorms/idea-task-pivot-protocol.md +348 -0
  170. agentwire_dev-1.0.3/docs/brainstorms/idea-voice-handoff.md +131 -0
  171. agentwire_dev-1.0.3/docs/brainstorms/idea-voice-identity.md +358 -0
  172. agentwire_dev-1.0.3/docs/brainstorms/idea-voice-interrupts.md +452 -0
  173. agentwire_dev-1.0.3/docs/brainstorms/idea-voice-macros.md +243 -0
  174. agentwire_dev-1.0.3/docs/brainstorms/idea-voice-transcript-logs.md +441 -0
  175. agentwire_dev-1.0.3/docs/brainstorms/idea-watchdog-mode.md +509 -0
  176. agentwire_dev-1.0.3/docs/brainstorms/idea-worker-file-coordination.md +307 -0
  177. agentwire_dev-1.0.3/docs/brainstorms/idea-worker-health-dashboard.md +194 -0
  178. agentwire_dev-1.0.3/docs/brainstorms/idea-worker-progress-streaming.md +133 -0
  179. agentwire_dev-1.0.3/docs/brainstorms/idea-worker-warmup.md +305 -0
  180. agentwire_dev-1.0.3/docs/critical-analysis.md +164 -0
  181. agentwire_dev-1.0.3/docs/logo.png +0 -0
  182. agentwire_dev-1.0.3/docs/notification-hooks.md +152 -0
  183. agentwire_dev-1.0.3/docs/progressive-loading-pattern.md +137 -0
  184. agentwire_dev-1.0.3/docs/prompts/agentwire-website.md +104 -0
  185. agentwire_dev-1.0.3/docs/remote-access.md +363 -0
  186. agentwire_dev-1.0.3/docs/remote-machines.md +176 -0
  187. agentwire_dev-1.0.3/docs/runpod-tts.md +98 -0
  188. agentwire_dev-1.0.3/docs/scheduled-workloads.md +336 -0
  189. agentwire_dev-1.0.3/docs/security/damage-control-migration.md +585 -0
  190. agentwire_dev-1.0.3/docs/security/damage-control.md +513 -0
  191. agentwire_dev-1.0.3/docs/tmux-hooks.md +359 -0
  192. agentwire_dev-1.0.3/docs/tts-self-hosted.md +205 -0
  193. agentwire_dev-1.0.3/opencode-plugin/agentwire-notify.ts +260 -0
  194. agentwire_dev-1.0.3/pyproject.toml +132 -0
  195. agentwire_dev-1.0.3/requirements-tts.txt +24 -0
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report something that isn't working correctly
4
+ title: '[Bug] '
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Description
10
+
11
+ A clear description of the bug.
12
+
13
+ ## Steps to Reproduce
14
+
15
+ 1.
16
+ 2.
17
+ 3.
18
+
19
+ ## Expected Behavior
20
+
21
+ What should happen.
22
+
23
+ ## Actual Behavior
24
+
25
+ What actually happens.
26
+
27
+ ## Environment
28
+
29
+ - **OS:** (e.g., macOS 14.2, Ubuntu 22.04)
30
+ - **Python:** (e.g., 3.11.5)
31
+ - **AgentWire version:** (run `agentwire --version`)
32
+ - **Agent:** (Claude Code / OpenCode / Other)
33
+
34
+ ## Logs
35
+
36
+ ```
37
+ Paste relevant logs here (check ~/.agentwire/logs/)
38
+ ```
39
+
40
+ ## Additional Context
41
+
42
+ Any other information that might help.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest a new feature or improvement
4
+ title: '[Feature] '
5
+ labels: enhancement
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Problem
10
+
11
+ What problem does this feature solve? What's the use case?
12
+
13
+ ## Proposed Solution
14
+
15
+ Describe the feature you'd like to see.
16
+
17
+ ## Alternatives Considered
18
+
19
+ Have you considered any alternative solutions or workarounds?
20
+
21
+ ## Additional Context
22
+
23
+ Any mockups, examples, or references that help explain the feature.
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Question
3
+ about: Ask a question about using AgentWire
4
+ title: '[Question] '
5
+ labels: question
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Question
10
+
11
+ What would you like to know?
12
+
13
+ ## Context
14
+
15
+ - What are you trying to accomplish?
16
+ - What have you already tried?
17
+ - Relevant configuration or setup details
18
+
19
+ ## Environment (if relevant)
20
+
21
+ - **OS:**
22
+ - **AgentWire version:**
@@ -0,0 +1,45 @@
1
+ <!--
2
+ Thanks for contributing to AgentWire!
3
+
4
+ Before submitting, please make sure:
5
+
6
+ 1. You've read the CONTRIBUTING guide: https://github.com/dotdevdotdev/agentwire-dev/blob/main/CONTRIBUTING.md
7
+ 2. You've run `uvx ruff check agentwire/` with no errors
8
+ 3. You've tested your changes locally
9
+ 4. For bug fixes: include a test that would have caught the bug
10
+ 5. For new features: include tests and update docs if needed
11
+
12
+ By submitting this PR, you agree to the Contributor License Agreement:
13
+ https://github.com/dotdevdotdev/agentwire-dev/blob/main/CLA.md
14
+ -->
15
+
16
+ ## Summary
17
+
18
+ <!-- What's the purpose of this change? What problem does it solve? -->
19
+
20
+ ## Type of Change
21
+
22
+ - [ ] 🐛 Bug fix (non-breaking change that fixes an issue)
23
+ - [ ] ✨ New feature (non-breaking change that adds functionality)
24
+ - [ ] 💥 Breaking change (fix or feature that would cause existing functionality to change)
25
+ - [ ] 📚 Documentation (changes to docs only)
26
+ - [ ] 🧹 Refactor (code change that neither fixes a bug nor adds a feature)
27
+
28
+ ## Test Plan
29
+
30
+ <!--
31
+ How did you verify this works? Examples:
32
+ - "Ran `agentwire say 'test'` and confirmed audio played"
33
+ - "Added unit test in test_foo.py"
34
+ - "Tested manually with screenshot below"
35
+
36
+ If you leave this empty, your PR will likely need revision.
37
+ -->
38
+
39
+ ## Screenshots
40
+
41
+ <!-- If this changes UI (portal, CLI output), include before/after screenshots -->
42
+
43
+ ## Related Issues
44
+
45
+ <!-- Link any related issues: "Fixes #123" or "Related to #456" -->
@@ -0,0 +1,28 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v4
17
+
18
+ - name: Set up Python
19
+ run: uv python install 3.12
20
+
21
+ - name: Install dependencies
22
+ run: uv sync --dev
23
+
24
+ - name: Run ruff linter
25
+ run: uvx ruff check agentwire/
26
+
27
+ - name: Run ruff formatter check
28
+ run: uvx ruff format --check agentwire/
@@ -0,0 +1,52 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ *.so
6
+ .Python
7
+ build/
8
+ develop-eggs/
9
+ dist/
10
+ downloads/
11
+ eggs/
12
+ .eggs/
13
+ lib/
14
+ lib64/
15
+ parts/
16
+ sdist/
17
+ var/
18
+ wheels/
19
+ *.egg-info/
20
+ .installed.cfg
21
+ *.egg
22
+
23
+ # Virtual environments
24
+ .venv/
25
+ venv/
26
+ ENV/
27
+
28
+ # IDE
29
+ .idea/
30
+ .vscode/
31
+ *.swp
32
+ *.swo
33
+
34
+ # OS
35
+ .DS_Store
36
+ Thumbs.db
37
+
38
+ # Project specific
39
+ *.log
40
+ .env
41
+ .env.*
42
+
43
+ # Voice clones (user-specific, not distributed)
44
+ # Note: /voices/ ignores root only; agentwire/voices/ contains bundled synthetic voices
45
+ /voices/
46
+
47
+ .agentwire.yml
48
+
49
+ # Test outputs
50
+ test_*.wav
51
+ test_output*.wav
52
+ .agentwire/
@@ -0,0 +1,69 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+
12
+ - AGPL v3 licensing with CLA for dual-licensing model
13
+ - GitHub issue templates (bug report, feature request, question)
14
+ - Pull request template
15
+ - Security policy (SECURITY.md)
16
+ - Code of Conduct
17
+ - GitHub Actions CI workflow for linting
18
+
19
+ ## [1.0.0] - 2026-01-19
20
+
21
+ Initial public release of AgentWire.
22
+
23
+ ### Added
24
+
25
+ - **Desktop Control Center** - WinBox-powered window management with draggable/resizable session windows
26
+ - **Session Windows** - Monitor mode (read-only output) or Terminal mode (full xterm.js) per session
27
+ - **Push-to-Talk Voice** - Hold to speak, release to send transcription from any device
28
+ - **TTS Playback** - Agent responses spoken back via browser audio with smart routing
29
+ - **Multi-Device Access** - Control sessions from phone, tablet, or laptop on your network
30
+ - **Git Worktrees** - Multiple agents work the same project in parallel on separate branches
31
+ - **Remote Machines** - Orchestrate Claude Code sessions on remote servers via SSH
32
+ - **Safety Hooks** - 300+ dangerous command patterns blocked (rm -rf, git push --force, secret exposure)
33
+ - **Session Roles** - Orchestrator sessions coordinate voice, workers execute focused tasks
34
+ - **Permission Hooks** - Claude Code integration for permission dialogs in the portal
35
+
36
+ ### CLI Commands
37
+
38
+ - `agentwire init` - Interactive setup wizard
39
+ - `agentwire portal start/stop/status` - Portal management
40
+ - `agentwire tts start/stop/status` - TTS server management
41
+ - `agentwire stt start/stop/status` - STT server management
42
+ - `agentwire new/list/kill/send/output` - Session management
43
+ - `agentwire spawn/split/detach/jump` - Pane management
44
+ - `agentwire say` - TTS with smart audio routing
45
+ - `agentwire safety check/status/logs` - Security diagnostics
46
+ - `agentwire machine add/remove/list` - Remote machine management
47
+ - `agentwire tunnels up/down/status` - SSH tunnel management
48
+ - `agentwire history list/show/resume` - Session history
49
+ - `agentwire doctor` - Auto-diagnose and fix issues
50
+ - `agentwire generate-certs` - SSL certificate generation
51
+
52
+ ### Security
53
+
54
+ - Damage control hooks protecting against 300+ dangerous command patterns
55
+ - Zero-access paths for credentials, SSH keys, and API tokens
56
+ - Read-only paths for system configs
57
+ - No-delete paths for session and mission files
58
+ - Audit logging for all security decisions
59
+
60
+ ### Documentation
61
+
62
+ - Comprehensive README with platform-specific installation instructions
63
+ - Architecture documentation
64
+ - Troubleshooting guide
65
+ - TTS setup guide
66
+ - Remote machines guide
67
+ - Security documentation
68
+
69
+ [1.0.0]: https://github.com/dotdevdotdev/agentwire-dev/releases/tag/v1.0.0
@@ -0,0 +1,54 @@
1
+ # Contributor License Agreement
2
+
3
+ Thank you for your interest in contributing to AgentWire ("Project"). This Contributor License Agreement ("Agreement") documents the rights granted by contributors to the Project.
4
+
5
+ ## Why a CLA?
6
+
7
+ AgentWire uses a dual-licensing model: the code is available under AGPL v3 for open source use, and under a commercial license for organizations that prefer not to comply with AGPL terms. To maintain this model and protect the project's sustainability, we need contributors to grant us certain rights.
8
+
9
+ ## Agreement
10
+
11
+ By submitting a contribution (code, documentation, or other materials) to this Project, you agree to the following terms:
12
+
13
+ ### 1. Definitions
14
+
15
+ - **"You"** means the individual or legal entity submitting a Contribution.
16
+ - **"Contribution"** means any original work of authorship, including modifications or additions to existing work, that you submit to the Project.
17
+
18
+ ### 2. Grant of Copyright License
19
+
20
+ You grant to the Project maintainers and to recipients of software distributed by the Project a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to:
21
+ - Reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute your Contributions and such derivative works.
22
+ - Re-license the Contribution under any license, including proprietary licenses.
23
+
24
+ ### 3. Grant of Patent License
25
+
26
+ You grant to the Project maintainers and to recipients of software distributed by the Project a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Contribution.
27
+
28
+ ### 4. Representations
29
+
30
+ You represent that:
31
+ - You are legally entitled to grant the above licenses.
32
+ - Each Contribution is your original creation OR you have sufficient rights to submit the Contribution.
33
+ - Your Contribution does not violate any third-party rights.
34
+ - If your employer has rights to intellectual property you create, you have received permission to make Contributions on behalf of that employer, or your employer has waived such rights.
35
+
36
+ ### 5. No Obligation
37
+
38
+ You understand that:
39
+ - The Project is under no obligation to accept or include your Contribution.
40
+ - You are not expected to provide support for your Contributions.
41
+
42
+ ### 6. Attribution
43
+
44
+ The Project will maintain a record of all contributors. You may be credited in release notes or other project documentation.
45
+
46
+ ## How to Sign
47
+
48
+ By submitting a pull request to this repository, you agree to the terms of this CLA. No separate signature is required.
49
+
50
+ If you are contributing on behalf of your employer, please ensure you have the necessary permissions.
51
+
52
+ ## Questions?
53
+
54
+ If you have questions about this CLA, please open an issue.
@@ -0,0 +1,46 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity
10
+ and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment:
18
+
19
+ - Using welcoming and inclusive language
20
+ - Being respectful of differing viewpoints and experiences
21
+ - Gracefully accepting constructive criticism
22
+ - Focusing on what is best for the community
23
+ - Showing empathy towards other community members
24
+
25
+ Examples of unacceptable behavior:
26
+
27
+ - The use of sexualized language or imagery, and sexual attention or advances
28
+ - Trolling, insulting or derogatory comments, and personal or political attacks
29
+ - Public or private harassment
30
+ - Publishing others' private information without explicit permission
31
+ - Other conduct which could reasonably be considered inappropriate
32
+
33
+ ## Enforcement
34
+
35
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
36
+ reported to the project team at conduct@agentwire.dev.
37
+
38
+ All complaints will be reviewed and investigated promptly and fairly.
39
+
40
+ Project maintainers are obligated to respect the privacy and security of the
41
+ reporter of any incident.
42
+
43
+ ## Attribution
44
+
45
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
46
+ version 2.0.
@@ -0,0 +1,184 @@
1
+ # Contributing to AgentWire
2
+
3
+ Thank you for your interest in contributing to AgentWire!
4
+
5
+ ## Contributor License Agreement
6
+
7
+ By submitting a pull request, you agree to the terms of our [Contributor License Agreement](CLA.md). This allows us to maintain our dual-licensing model (AGPL v3 + commercial) while accepting community contributions.
8
+
9
+ ## Development Setup
10
+
11
+ ### Prerequisites
12
+
13
+ - Python 3.10+
14
+ - [uv](https://github.com/astral-sh/uv) - Fast Python package manager
15
+ - tmux
16
+
17
+ ### Quick Start
18
+
19
+ ```bash
20
+ # Clone the repository
21
+ git clone https://github.com/dotdevdotdev/agentwire-dev.git
22
+ cd agentwire-dev
23
+
24
+ # Install in development mode
25
+ uv pip install -e .
26
+
27
+ # Run in development mode (picks up code changes instantly)
28
+ agentwire portal start --dev
29
+
30
+ # After structural changes (pyproject.toml, new files)
31
+ agentwire rebuild
32
+ ```
33
+
34
+ ### Development Workflow
35
+
36
+ ```bash
37
+ # Start development session
38
+ agentwire dev
39
+
40
+ # Run linter
41
+ uvx ruff check agentwire/
42
+
43
+ # Run with auto-fix
44
+ uvx ruff check agentwire/ --fix
45
+ ```
46
+
47
+ ## Code Style
48
+
49
+ ### Linting
50
+
51
+ We use [ruff](https://github.com/astral-sh/ruff) for linting. Configuration is in `pyproject.toml`:
52
+
53
+ ```toml
54
+ [tool.ruff.lint]
55
+ select = ["E", "F", "I", "N", "W"]
56
+ ```
57
+
58
+ ### Docstrings
59
+
60
+ Use Google-style docstrings for all public functions:
61
+
62
+ ```python
63
+ def function_name(arg1: str, arg2: int = 10) -> dict:
64
+ """Brief one-line description.
65
+
66
+ Longer description if needed explaining purpose
67
+ and important details.
68
+
69
+ Args:
70
+ arg1: Description of arg1.
71
+ arg2: Description of arg2. Defaults to 10.
72
+
73
+ Returns:
74
+ Description of return value.
75
+
76
+ Raises:
77
+ ValueError: When arg1 is empty.
78
+ """
79
+ ```
80
+
81
+ ## Code Patterns
82
+
83
+ ### Use Utility Modules
84
+
85
+ Common operations are centralized in `agentwire/utils/`:
86
+
87
+ ```python
88
+ # Subprocess execution
89
+ from agentwire.utils import run_command, run_command_check
90
+
91
+ result = run_command(["ls", "-la"])
92
+ if result.success:
93
+ print(result.stdout)
94
+
95
+ # File I/O
96
+ from agentwire.utils import load_json, save_json, load_yaml
97
+
98
+ config = load_json(config_path, default={})
99
+ save_json(config_path, data)
100
+
101
+ # Paths
102
+ from agentwire.utils import agentwire_dir, config_path, logs_dir
103
+
104
+ base = agentwire_dir() # ~/.agentwire/
105
+ ```
106
+
107
+ ### Error Handling
108
+
109
+ Use the structured error classes in `agentwire/errors.py`:
110
+
111
+ ```python
112
+ from agentwire.errors import AgentWireError
113
+
114
+ raise AgentWireError(
115
+ what="Session not found",
116
+ why="No tmux session exists with that name",
117
+ how="Create a new session with 'agentwire new -s name'"
118
+ )
119
+ ```
120
+
121
+ ### Configuration
122
+
123
+ Use dataclasses for configuration (see `agentwire/config.py`):
124
+
125
+ ```python
126
+ @dataclass
127
+ class ServerConfig:
128
+ host: str = "0.0.0.0"
129
+ port: int = 8765
130
+ ```
131
+
132
+ ### Validation
133
+
134
+ Use structured validation with suggestions (see `agentwire/validation.py`):
135
+
136
+ ```python
137
+ def validate_config(config: Config) -> tuple[list[ConfigError], list[ConfigWarning]]:
138
+ """Returns errors and warnings with fix suggestions."""
139
+ ```
140
+
141
+ ## CLI First
142
+
143
+ All session/machine logic lives in CLI commands (`__main__.py`). The web portal is a thin wrapper that:
144
+
145
+ 1. Calls CLI via `run_agentwire_cmd(["command", "args"])`
146
+ 2. Parses JSON output (`--json` flag)
147
+ 3. Adds WebSocket/real-time features
148
+
149
+ When adding new functionality:
150
+ 1. Implement in CLI first with `--json` output
151
+ 2. Portal calls CLI, doesn't duplicate logic
152
+ 3. Never bypass CLI with direct tmux/subprocess calls
153
+
154
+ ## Project Structure
155
+
156
+ ```
157
+ agentwire/
158
+ ├── __main__.py # CLI commands (entry point)
159
+ ├── server.py # WebSocket server
160
+ ├── config.py # Configuration dataclasses
161
+ ├── errors.py # Structured error classes
162
+ ├── validation.py # Config validation
163
+ ├── utils/ # Shared utilities
164
+ │ ├── subprocess.py # Command execution
165
+ │ ├── file_io.py # JSON/YAML handling
166
+ │ └── paths.py # Path management
167
+ ├── agents/ # Agent implementations
168
+ ├── tts/ # Text-to-speech backends
169
+ ├── stt/ # Speech-to-text backends
170
+ ├── hooks/ # Claude Code hooks
171
+ └── roles/ # Role instruction files
172
+ ```
173
+
174
+ ## Pull Request Guidelines
175
+
176
+ 1. Create a branch from `main`
177
+ 2. Make your changes
178
+ 3. Run `uvx ruff check agentwire/` - ensure no errors
179
+ 4. Commit with descriptive message
180
+ 5. Open PR with description of changes
181
+
182
+ ## Questions?
183
+
184
+ Open an issue or start a discussion on GitHub.
@@ -0,0 +1,75 @@
1
+ # Local Self-Hosted TTS - Chatterbox with Voice Cloning + Whisper
2
+ # Run on any machine with NVIDIA GPU + Docker
3
+ #
4
+ # Build:
5
+ # docker build -f Dockerfile.local -t agentwire-tts-local --build-arg HF_TOKEN=$HF_TOKEN .
6
+ #
7
+ # Run:
8
+ # docker run --gpus all -p 8100:8100 -v ~/.agentwire/voices:/voices agentwire-tts-local
9
+
10
+ FROM nvidia/cuda:12.1.0-cudnn8-runtime-ubuntu22.04
11
+
12
+ # Prevent interactive prompts during build
13
+ ENV DEBIAN_FRONTEND=noninteractive
14
+
15
+ # Install Python 3.11 and essentials
16
+ RUN apt-get update && apt-get install -y \
17
+ python3.11 \
18
+ python3.11-dev \
19
+ python3-pip \
20
+ git \
21
+ ffmpeg \
22
+ && rm -rf /var/lib/apt/lists/*
23
+
24
+ # Set Python 3.11 as default
25
+ RUN update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1 && \
26
+ update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
27
+
28
+ # Upgrade pip
29
+ RUN python3 -m pip install --upgrade pip
30
+
31
+ # Set working directory
32
+ WORKDIR /app
33
+
34
+ # Install Python dependencies for HTTP server
35
+ RUN pip install --no-cache-dir \
36
+ torch>=2.0.0 \
37
+ torchaudio>=2.0.0 \
38
+ fastapi \
39
+ uvicorn[standard] \
40
+ faster-whisper \
41
+ pydantic \
42
+ python-multipart
43
+
44
+ # Install Chatterbox TTS
45
+ RUN pip install --no-cache-dir git+https://github.com/resemble-ai/chatterbox.git
46
+
47
+ # Copy AgentWire source code
48
+ COPY agentwire/ ./agentwire/
49
+
50
+ # Pre-download models (requires HF_TOKEN for Chatterbox)
51
+ ARG HF_TOKEN
52
+ ENV HF_TOKEN=${HF_TOKEN}
53
+ ENV HF_HOME=/app/.cache/huggingface
54
+
55
+ # Download Chatterbox model
56
+ RUN python3 -c "from chatterbox.tts_turbo import ChatterboxTurboTTS; ChatterboxTurboTTS.from_pretrained(device='cpu')" || \
57
+ echo "Warning: Model download failed, will retry at runtime"
58
+
59
+ # Download Whisper large-v3 model
60
+ RUN python3 -c "from faster_whisper import WhisperModel; WhisperModel('large-v3', device='cpu', compute_type='int8')" || \
61
+ echo "Warning: Whisper download failed, will retry at runtime"
62
+
63
+ # Copy bundled synthetic voices (can override at runtime with -v mount)
64
+ # Includes: default, darren, jessica, lisa, may
65
+ COPY agentwire/voices/ /voices/
66
+
67
+ # Environment
68
+ ENV PYTHONUNBUFFERED=1
69
+ ENV VOICES_DIR=/voices
70
+
71
+ # Expose HTTP port
72
+ EXPOSE 8100
73
+
74
+ # Run FastAPI server
75
+ CMD ["python3", "-m", "uvicorn", "agentwire.tts_server:app", "--host", "0.0.0.0", "--port", "8100"]