agentwire-dev 1.77.5__tar.gz → 1.78.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.
Files changed (637) hide show
  1. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/PKG-INFO +2 -2
  2. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/RELEASING.md +1 -1
  3. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/__init__.py +1 -1
  4. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rule_baselines.json +1 -0
  5. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire.yaml +2 -2
  6. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tasks_cli.py +2 -2
  7. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/cases/bypass.yaml +23 -0
  8. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/cases/control_plane.yaml +74 -74
  9. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/cases/relative_paths.yaml +3 -3
  10. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/golden/harvested.json +17 -16
  11. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/golden/snapshot.json +98 -67
  12. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/damage-control.md +12 -8
  13. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/pyproject.toml +1 -1
  14. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_control_plane_protection.py +5 -5
  15. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_corpus.py +3 -3
  16. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_damage_control_bypass.py +12 -5
  17. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_policy_ladder.py +16 -5
  18. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_relative_path_operands.py +1 -1
  19. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.agentwire.yml.example +0 -0
  20. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.claude/commands/handoff.md +0 -0
  21. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.claude/skills/wiki/SKILL.md +0 -0
  22. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/FUNDING.yml +0 -0
  23. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  24. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  25. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  26. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  27. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/workflows/pytest.yml +0 -0
  28. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/workflows/ruff.yml +0 -0
  29. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/workflows/security.yml +0 -0
  30. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.github/workflows/tts-smoke.yml +0 -0
  31. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/.gitignore +0 -0
  32. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/AGENTS.md +0 -0
  33. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/CODE_OF_CONDUCT.md +0 -0
  34. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/CONTRIBUTING.md +0 -0
  35. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/Dockerfile.local +0 -0
  36. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/LICENSE +0 -0
  37. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/README.md +0 -0
  38. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/SECURITY.md +0 -0
  39. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/SPONSORS.md +0 -0
  40. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/__main__.py +0 -0
  41. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/agents/__init__.py +0 -0
  42. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/agents/base.py +0 -0
  43. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/agents/tmux.py +0 -0
  44. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/auth_expired.py +0 -0
  45. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/background_tasks.py +0 -0
  46. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/beta.py +0 -0
  47. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/cached_status.py +0 -0
  48. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels/__init__.py +0 -0
  49. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels/base.py +0 -0
  50. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels/email.py +0 -0
  51. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels/push.py +0 -0
  52. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels/quo.py +0 -0
  53. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/channels_cli.py +0 -0
  54. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/chrome_tabs.py +0 -0
  55. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/claude_settings.py +0 -0
  56. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/cohort.py +0 -0
  57. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/completion.py +0 -0
  58. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/config.py +0 -0
  59. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/config_cli.py +0 -0
  60. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/core.py +0 -0
  61. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/__init__.py +0 -0
  62. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/cli.py +0 -0
  63. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/inbox.py +0 -0
  64. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/minutes.py +0 -0
  65. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/state.py +0 -0
  66. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/council/view.py +0 -0
  67. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/devices.py +0 -0
  68. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/diff_cli.py +0 -0
  69. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/doctor_cli.py +0 -0
  70. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/doctor_voice.py +0 -0
  71. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/ensure_cli.py +0 -0
  72. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/env_loader.py +0 -0
  73. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/fetch.py +0 -0
  74. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/__init__.py +0 -0
  75. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/git_state.py +0 -0
  76. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/instructions.py +0 -0
  77. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/parser.py +0 -0
  78. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/renderer.py +0 -0
  79. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff/schema.py +0 -0
  80. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/handoff_cli.py +0 -0
  81. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/history.py +0 -0
  82. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/history_cli.py +0 -0
  83. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/history_migrate.py +0 -0
  84. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks/__init__.py +0 -0
  85. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks/agentwire-permission.sh +0 -0
  86. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks/idle-handler.sh +0 -0
  87. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks/outcome_logger.py +0 -0
  88. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks/queue-processor.sh +0 -0
  89. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/hooks_cli.py +0 -0
  90. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/inbox.py +0 -0
  91. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/limits_cli.py +0 -0
  92. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/listen.py +0 -0
  93. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/locking.py +0 -0
  94. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/machine_cli.py +0 -0
  95. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_channels.py +0 -0
  96. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_chrome.py +0 -0
  97. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_cli.py +0 -0
  98. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_core.py +0 -0
  99. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_council.py +0 -0
  100. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_desktop.py +0 -0
  101. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_handoff.py +0 -0
  102. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_history.py +0 -0
  103. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_listen.py +0 -0
  104. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_lock.py +0 -0
  105. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_machine.py +0 -0
  106. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_msg.py +0 -0
  107. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_notify.py +0 -0
  108. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_pane.py +0 -0
  109. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_projects.py +0 -0
  110. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_scheduler.py +0 -0
  111. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_scratchpad.py +0 -0
  112. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_server.py +0 -0
  113. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_services.py +0 -0
  114. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_session.py +0 -0
  115. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_status.py +0 -0
  116. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_task.py +0 -0
  117. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_tunnels.py +0 -0
  118. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_voice.py +0 -0
  119. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_wiki.py +0 -0
  120. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/mcp_worktree.py +0 -0
  121. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/msg_cli.py +0 -0
  122. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/network.py +0 -0
  123. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/notify_cli.py +0 -0
  124. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/onboarding.py +0 -0
  125. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/palette_cli.py +0 -0
  126. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/pane_cli.py +0 -0
  127. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/pane_manager.py +0 -0
  128. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/playback_lane.py +0 -0
  129. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/portal_cli.py +0 -0
  130. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/project_config.py +0 -0
  131. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/projects.py +0 -0
  132. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/prompt_router.py +0 -0
  133. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/prompts_cli.py +0 -0
  134. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/push_cli.py +0 -0
  135. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/push_store.py +0 -0
  136. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/repo_cli.py +0 -0
  137. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/research.py +0 -0
  138. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/restart_cli.py +0 -0
  139. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/role_prompts.py +0 -0
  140. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/__init__.py +0 -0
  141. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/agentwire.md +0 -0
  142. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/anchor.md +0 -0
  143. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/chatbot.md +0 -0
  144. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/contributor.md +0 -0
  145. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/correspondent.md +0 -0
  146. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-brain.md +0 -0
  147. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-conscience.md +0 -0
  148. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-critic.md +0 -0
  149. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-devils-advocate.md +0 -0
  150. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-gut.md +0 -0
  151. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-historian.md +0 -0
  152. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-member.md +0 -0
  153. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/council-orchestrator.md +0 -0
  154. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/init.md +0 -0
  155. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/notifications.md +0 -0
  156. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/orchestrator.md +0 -0
  157. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/reviewer-worktree.md +0 -0
  158. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/reviewer.md +0 -0
  159. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/shared-checkout.md +0 -0
  160. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/soul.md +0 -0
  161. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/task-runner.md +0 -0
  162. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/voice.md +0 -0
  163. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/worker-worktree.md +0 -0
  164. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles/worker.md +0 -0
  165. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/roles_cli.py +0 -0
  166. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/__init__.py +0 -0
  167. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/artifacts.py +0 -0
  168. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/config.py +0 -0
  169. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/council.py +0 -0
  170. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/desktop.py +0 -0
  171. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/history.py +0 -0
  172. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/machines.py +0 -0
  173. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/notify.py +0 -0
  174. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/palette.py +0 -0
  175. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/permission.py +0 -0
  176. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/projects.py +0 -0
  177. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/push.py +0 -0
  178. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/safety.py +0 -0
  179. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/scheduler.py +0 -0
  180. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/scratchpad.py +0 -0
  181. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/sessions.py +0 -0
  182. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/sessions_admin.py +0 -0
  183. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/routes/voice.py +0 -0
  184. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/__init__.py +0 -0
  185. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/audit.py +0 -0
  186. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/lint.py +0 -0
  187. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/provenance.py +0 -0
  188. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/residuals.py +0 -0
  189. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-control-plane.json +0 -0
  190. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-control-plane.yaml +0 -0
  191. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-core.json +0 -0
  192. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-core.yaml +0 -0
  193. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-mcp-tools.json +0 -0
  194. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-mcp-tools.yaml +0 -0
  195. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-outbound.json +0 -0
  196. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire-outbound.yaml +0 -0
  197. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/rules/agentwire.json +0 -0
  198. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety/suggest.py +0 -0
  199. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_cli.py +0 -0
  200. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_commands.py +0 -0
  201. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_ext.py +0 -0
  202. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_migrate.py +0 -0
  203. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_notify.py +0 -0
  204. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/safety_packs_cli.py +0 -0
  205. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/__init__.py +0 -0
  206. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/dispatch.py +0 -0
  207. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/gates.py +0 -0
  208. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/loop.py +0 -0
  209. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/models.py +0 -0
  210. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/report.py +0 -0
  211. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/schedule.py +0 -0
  212. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/state.py +0 -0
  213. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler/zombie.py +0 -0
  214. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scheduler_cli.py +0 -0
  215. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/scratchpad.py +0 -0
  216. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/security.py +0 -0
  217. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/send_cli.py +0 -0
  218. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/sent_ledger.py +0 -0
  219. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/server.py +0 -0
  220. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/services.py +0 -0
  221. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/session_cli.py +0 -0
  222. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/session_context.py +0 -0
  223. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/session_ready.py +0 -0
  224. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/session_state.py +0 -0
  225. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/ssh.py +0 -0
  226. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
  227. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
  228. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
  229. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
  230. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
  231. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/announcements.json +0 -0
  232. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/apple-touch-icon.png +0 -0
  233. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/css/desktop.css +0 -0
  234. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/css/mobile.css +0 -0
  235. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/favicon-32.png +0 -0
  236. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/favicon-64.png +0 -0
  237. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/bear.webp +0 -0
  238. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/cat.webp +0 -0
  239. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/crown.webp +0 -0
  240. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/custom/agentwire-portal.webp +0 -0
  241. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/custom/agentwire-tts.webp +0 -0
  242. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/custom/agentwire.webp +0 -0
  243. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/deer.webp +0 -0
  244. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/drone.webp +0 -0
  245. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/eagle.webp +0 -0
  246. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/fox.webp +0 -0
  247. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/hawk.webp +0 -0
  248. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/horse.webp +0 -0
  249. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/lion.webp +0 -0
  250. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/rabbit.webp +0 -0
  251. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/robot.webp +0 -0
  252. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/tiger.webp +0 -0
  253. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/icons/sessions/wolf.webp +0 -0
  254. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/img/icon-192.png +0 -0
  255. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/img/icon-512.png +0 -0
  256. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/.gitkeep +0 -0
  257. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/announcement-modal.js +0 -0
  258. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/api.js +0 -0
  259. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/artifact-window.js +0 -0
  260. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/card-terminal.js +0 -0
  261. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/collage.js +0 -0
  262. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/command-palette.js +0 -0
  263. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/council-window.js +0 -0
  264. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/dead-key-residue.js +0 -0
  265. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/desktop-manager.js +0 -0
  266. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/desktop.js +0 -0
  267. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/help-modal.js +0 -0
  268. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/hotkeys.js +0 -0
  269. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/icon-manager.js +0 -0
  270. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/lineage.js +0 -0
  271. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/mobile.js +0 -0
  272. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/notification-prefs.js +0 -0
  273. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/notifications-panel.js +0 -0
  274. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/ptt.js +0 -0
  275. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/push-client.js +0 -0
  276. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/review-window.js +0 -0
  277. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/safety-shared.js +0 -0
  278. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/safety-window.js +0 -0
  279. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/scratchpad.js +0 -0
  280. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/service-classification.js +0 -0
  281. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-hud-controller.js +0 -0
  282. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-hud-notices.js +0 -0
  283. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-hud-spawn.js +0 -0
  284. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-hud.js +0 -0
  285. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-id.js +0 -0
  286. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/session-window.js +0 -0
  287. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/shortcuts.js +0 -0
  288. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
  289. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/config-section.js +0 -0
  290. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/council-section.js +0 -0
  291. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/machines-section.js +0 -0
  292. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/projects-section.js +0 -0
  293. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/safety-section.js +0 -0
  294. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
  295. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/services-section.js +0 -0
  296. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar/sessions-section.js +0 -0
  297. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/sidebar.js +0 -0
  298. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/spawn-ghost.js +0 -0
  299. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/taskbar-persist.js +0 -0
  300. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/terminal-font-prefs.js +0 -0
  301. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/terminal-pane.js +0 -0
  302. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/tile-manager.js +0 -0
  303. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/toast.js +0 -0
  304. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/token-modal.js +0 -0
  305. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/topology-render.js +0 -0
  306. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/utils/ansi.js +0 -0
  307. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/utils/rich-text.js +0 -0
  308. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/utils/swipe.js +0 -0
  309. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/audio-unlock.js +0 -0
  310. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/autosend-prefs.js +0 -0
  311. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/browser-stt.js +0 -0
  312. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/browser-tts.js +0 -0
  313. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/jargon.js +0 -0
  314. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/voice/prompt.js +0 -0
  315. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/winbox.bundle.min.js +0 -0
  316. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/js/workspace-window.js +0 -0
  317. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/manifest.webmanifest +0 -0
  318. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/service-worker.js +0 -0
  319. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/static/topology-harness.html +0 -0
  320. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/__init__.py +0 -0
  321. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/base.py +0 -0
  322. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/cloud.py +0 -0
  323. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/engine.py +0 -0
  324. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/local.py +0 -0
  325. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/server_backend.py +0 -0
  326. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/stt/stt_server.py +0 -0
  327. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/system_cli.py +0 -0
  328. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tabs_cli.py +0 -0
  329. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tasks.py +0 -0
  330. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/__init__.py +0 -0
  331. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/base.html +0 -0
  332. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/council/minutes.html.j2 +0 -0
  333. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/desktop.html +0 -0
  334. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/email_notification.html +0 -0
  335. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
  336. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/handoff/theme.css.j2 +0 -0
  337. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/mobile.html +0 -0
  338. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/pair.html +0 -0
  339. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/statusline.sh +0 -0
  340. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templates/tmux.conf +0 -0
  341. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/templating.py +0 -0
  342. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/__init__.py +0 -0
  343. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/audio.py +0 -0
  344. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/base.py +0 -0
  345. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/engines/__init__.py +0 -0
  346. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/engines/chatterbox.py +0 -0
  347. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/engines/kokoro.py +0 -0
  348. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/engines/zonos.py +0 -0
  349. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/kokoro_server.py +0 -0
  350. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/local.py +0 -0
  351. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts/registry.py +0 -0
  352. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts_cli.py +0 -0
  353. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tts_server.py +0 -0
  354. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tunnels.py +0 -0
  355. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/tunnels_cli.py +0 -0
  356. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/usage_limit.py +0 -0
  357. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/__init__.py +0 -0
  358. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/chunker.py +0 -0
  359. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/event_log.py +0 -0
  360. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/file_io.py +0 -0
  361. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/paths.py +0 -0
  362. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/speech.py +0 -0
  363. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/utils/subprocess.py +0 -0
  364. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/validation.py +0 -0
  365. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/voice_status.py +0 -0
  366. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/wait_cli.py +0 -0
  367. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/wiki.py +0 -0
  368. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/wiki_audit.py +0 -0
  369. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/wiki_cli.py +0 -0
  370. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/worktree.py +0 -0
  371. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/worktree_cli.py +0 -0
  372. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/agentwire/worktree_registry.py +0 -0
  373. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/cases/path_spelling.yaml +0 -0
  374. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/golden/effective_rules.json +0 -0
  375. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/golden/rule_ids.json +0 -0
  376. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/corpus/schema.json +0 -0
  377. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/decisions/obsidian-second-brain.md +0 -0
  378. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/design/session-card-fields.md +0 -0
  379. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/design/session-card-recommendation.md +0 -0
  380. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/logo.png +0 -0
  381. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/INDEX.md +0 -0
  382. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/architecture.md +0 -0
  383. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/auth-expired.md +0 -0
  384. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/briefing-mode.md +0 -0
  385. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/communication/channels.md +0 -0
  386. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/communication/hammerspoon.md +0 -0
  387. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/communication/handoff.md +0 -0
  388. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/concepts.md +0 -0
  389. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/council.md +0 -0
  390. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/deployment/remote-access.md +0 -0
  391. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/deployment/remote-machines.md +0 -0
  392. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/glossary.md +0 -0
  393. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
  394. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/parallel-refactor.md +0 -0
  395. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/portal.md +0 -0
  396. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/session-topology.md +0 -0
  397. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/shell-escaping.md +0 -0
  398. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/troubleshooting.md +0 -0
  399. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/internals/window-collage.md +0 -0
  400. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/quickstart.md +0 -0
  401. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/research/briefing-mode-feasibility.md +0 -0
  402. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/research/orchestration-transport-alternatives.md +0 -0
  403. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
  404. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/security/damage-control-hardening.md +0 -0
  405. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/security/pip-audit.md +0 -0
  406. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/security/remote-access-hardening.md +0 -0
  407. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/security/secrets.md +0 -0
  408. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/services.md +0 -0
  409. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
  410. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/conversation-identity.md +0 -0
  411. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/fan-out-cohorts.md +0 -0
  412. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/heal-line-count-cliff.md +0 -0
  413. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/helper-sessions.md +0 -0
  414. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/messaging.md +0 -0
  415. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/prompt-routing.md +0 -0
  416. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/window-sizing.md +0 -0
  417. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/sessions/worktree-sessions.md +0 -0
  418. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/usage-limit-recovery.md +0 -0
  419. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/voice/shim-contract.md +0 -0
  420. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/voice/stt-cloud.md +0 -0
  421. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/voice/stt-self-hosted.md +0 -0
  422. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/docs/wiki/voice/tts-self-hosted.md +0 -0
  423. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/conftest.py +0 -0
  424. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/corpus_runner.py +0 -0
  425. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/e2e/test_portal_ui.py +0 -0
  426. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/audio_unlock_harness.mjs +0 -0
  427. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_30_shell.txt +0 -0
  428. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_agent.txt +0 -0
  429. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_done.txt +0 -0
  430. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_interrupted.txt +0 -0
  431. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_monitor.txt +0 -0
  432. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_quoted_footer.txt +0 -0
  433. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_second_notice.txt +0 -0
  434. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_shell.txt +0 -0
  435. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/pane_80_shell_and_monitor.txt +0 -0
  436. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/transcript_bash_done.jsonl +0 -0
  437. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/transcript_bash_pending.jsonl +0 -0
  438. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/transcript_monitor_done.jsonl +0 -0
  439. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/background_tasks/transcript_monitor_events.jsonl +0 -0
  440. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/dc_msg_body_quoting_carriers.txt +0 -0
  441. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/hotkeys_harness.mjs +0 -0
  442. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/sample_agentwire.yml +0 -0
  443. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/sample_config.yaml +0 -0
  444. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/sample_scheduler.yaml +0 -0
  445. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/session_hud_detent_harness.mjs +0 -0
  446. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/taskbar_persist_harness.mjs +0 -0
  447. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/fixtures/topology_expand_harness.mjs +0 -0
  448. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/home_guard.py +0 -0
  449. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_council_portal.py +0 -0
  450. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_scheduler_board.py +0 -0
  451. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_send_verified_tmux.py +0 -0
  452. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_server_websockets.py +0 -0
  453. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_tmux_name_rewrite.py +0 -0
  454. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/integration/test_worktree_cmd.py +0 -0
  455. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_agentwire_rules_layer.py +0 -0
  456. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_announcements.py +0 -0
  457. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_audio_unlock_js.py +0 -0
  458. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_audit_attribution.py +0 -0
  459. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_audit_outcomes.py +0 -0
  460. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_auth_expired.py +0 -0
  461. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_auth_expired_dispatch.py +0 -0
  462. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_background_tasks.py +0 -0
  463. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_background_tasks_review.py +0 -0
  464. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_beta_flag.py +0 -0
  465. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_block_rows_carry_an_id.py +0 -0
  466. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_brace_expansion_zero_access.py +0 -0
  467. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_breakglass.py +0 -0
  468. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_buddy_removal_keeps.py +0 -0
  469. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_build_agent_command.py +0 -0
  470. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_channels.py +0 -0
  471. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_chrome_tabs.py +0 -0
  472. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_claude_settings.py +0 -0
  473. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_cli_commands.py +0 -0
  474. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_cli_output.py +0 -0
  475. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_cli_smoke.py +0 -0
  476. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_cli_stderr_clean.py +0 -0
  477. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_cohort.py +0 -0
  478. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_config.py +0 -0
  479. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_config_cli.py +0 -0
  480. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_council_cli.py +0 -0
  481. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_council_inbox.py +0 -0
  482. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_council_minutes.py +0 -0
  483. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_council_state.py +0 -0
  484. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_council_view.py +0 -0
  485. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_damage_control_delete_recursive.py +0 -0
  486. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_damage_control_hooks.py +0 -0
  487. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_damage_control_pin.py +0 -0
  488. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_dangling_worktrees.py +0 -0
  489. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_dc_install.py +0 -0
  490. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_dc_policy_packs.py +0 -0
  491. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_dc_profile_isolation.py +0 -0
  492. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_devices.py +0 -0
  493. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_diff_cli.py +0 -0
  494. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_doctor_orphaned_history.py +0 -0
  495. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_doctor_scheduler_staleness.py +0 -0
  496. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_doctor_secrets_perms.py +0 -0
  497. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_doctor_task_migration.py +0 -0
  498. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_doctor_voice.py +0 -0
  499. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_ensure_shared_dir.py +0 -0
  500. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_ensure_verified_prompt.py +0 -0
  501. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_env_loader.py +0 -0
  502. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_event_log.py +0 -0
  503. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_extension_points.py +0 -0
  504. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_golden_snapshot.py +0 -0
  505. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_guarded_launch_command.py +0 -0
  506. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_handoff_git_state.py +0 -0
  507. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_handoff_instructions.py +0 -0
  508. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_handoff_parser.py +0 -0
  509. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_handoff_renderer.py +0 -0
  510. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_helper_session.py +0 -0
  511. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_heredoc_marker_liveness.py +0 -0
  512. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_history.py +0 -0
  513. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_history_migrate.py +0 -0
  514. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_history_migrate_cli.py +0 -0
  515. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_history_resume_name.py +0 -0
  516. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hook_fail_closed.py +0 -0
  517. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hook_fail_closed_matrix.py +0 -0
  518. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hook_link_guard.py +0 -0
  519. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hook_python_floor.py +0 -0
  520. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hook_subprocess.py +0 -0
  521. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hooks_install.py +0 -0
  522. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_hotkeys_js.py +0 -0
  523. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_idle_handler.py +0 -0
  524. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_idle_nag.py +0 -0
  525. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_inbox.py +0 -0
  526. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_init_command.py +0 -0
  527. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_install_parity.py +0 -0
  528. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_launch_line_reentry.py +0 -0
  529. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_launch_via_env.py +0 -0
  530. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_limits_tick_isolation.py +0 -0
  531. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_live_target_1261.py +0 -0
  532. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_locking.py +0 -0
  533. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_mcp_nonblocking.py +0 -0
  534. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_mcp_server.py +0 -0
  535. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_mcp_tool_policy.py +0 -0
  536. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_mcp_tools_args.py +0 -0
  537. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_msg_cli.py +0 -0
  538. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_notify_cli.py +0 -0
  539. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_onboarding_reinit.py +0 -0
  540. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_owner_only_writes.py +0 -0
  541. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_palette_cli.py +0 -0
  542. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_path_case_folding.py +0 -0
  543. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_path_spelling.py +0 -0
  544. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_payload_position.py +0 -0
  545. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_pending_message_visibility.py +0 -0
  546. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_playback_lane.py +0 -0
  547. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_portal_api.py +0 -0
  548. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_portal_pair_url.py +0 -0
  549. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_posture_default.py +0 -0
  550. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_powershell_matcher.py +0 -0
  551. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_project_config.py +0 -0
  552. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_projects_registry.py +0 -0
  553. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_prompt_router.py +0 -0
  554. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_prompt_router_dedup.py +0 -0
  555. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_prompt_router_resume.py +0 -0
  556. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_prose_operands.py +0 -0
  557. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_push.py +0 -0
  558. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rebuild_guard.py +0 -0
  559. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rebuild_uv_lock.py +0 -0
  560. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_remote_session_record.py +0 -0
  561. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_repo_cli.py +0 -0
  562. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_report_back_path_1259.py +0 -0
  563. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_restart_cli.py +0 -0
  564. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rich_text_js.py +0 -0
  565. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rm_recoverable.py +0 -0
  566. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_role_prompt_retention.py +0 -0
  567. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_role_prompt_sweep_wiring.py +0 -0
  568. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_roles.py +0 -0
  569. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_routes_snapshot.py +0 -0
  570. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rule_files_load.py +0 -0
  571. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rule_ids_pinned.py +0 -0
  572. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_rules_json_in_sync.py +0 -0
  573. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safe_cwd.py +0 -0
  574. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_deployment.py +0 -0
  575. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_ext.py +0 -0
  576. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_groups.py +0 -0
  577. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_install.py +0 -0
  578. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_migrate.py +0 -0
  579. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_notify.py +0 -0
  580. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_safety_packs.py +0 -0
  581. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_say_lane.py +0 -0
  582. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_scan_budget.py +0 -0
  583. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_scheduler.py +0 -0
  584. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_scheduler_liveness.py +0 -0
  585. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_scheduler_zombie.py +0 -0
  586. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_scratchpad.py +0 -0
  587. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_security.py +0 -0
  588. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_sed_script_is_data.py +0 -0
  589. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_sent_ledger.py +0 -0
  590. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_server_async.py +0 -0
  591. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_services.py +0 -0
  592. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_services_command.py +0 -0
  593. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_context.py +0 -0
  594. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_created_by_env.py +0 -0
  595. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_hud_detent_js.py +0 -0
  596. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_metadata_ssot.py +0 -0
  597. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_metadata_write.py +0 -0
  598. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_ready.py +0 -0
  599. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_session_state.py +0 -0
  600. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_shared_dir_guard.py +0 -0
  601. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_shim_selfheal.py +0 -0
  602. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_skill_install.py +0 -0
  603. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_speech_tags.py +0 -0
  604. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_ssh.py +0 -0
  605. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_stt_backend.py +0 -0
  606. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_stt_cloud.py +0 -0
  607. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_stt_engine.py +0 -0
  608. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_task_cli.py +0 -0
  609. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_task_max_duration.py +0 -0
  610. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_taskbar_persist_js.py +0 -0
  611. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tasks.py +0 -0
  612. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tasks_cli.py +0 -0
  613. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_templating.py +0 -0
  614. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_terminal_resize.py +0 -0
  615. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tmux_session_cwd.py +0 -0
  616. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_topology_expand_js.py +0 -0
  617. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tts_engine_resolution.py +0 -0
  618. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tts_local.py +0 -0
  619. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_tunnels_probe.py +0 -0
  620. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_unattended_allow.py +0 -0
  621. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_unattended_env_isolation.py +0 -0
  622. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_unattended_scoped_allow.py +0 -0
  623. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_usage_limit.py +0 -0
  624. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_voice_assistant_removed.py +0 -0
  625. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_voice_off_and_shim_bind.py +0 -0
  626. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_voice_status.py +0 -0
  627. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_watchdog_stages.py +0 -0
  628. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_wiki.py +0 -0
  629. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_wiki_audit.py +0 -0
  630. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree.py +0 -0
  631. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree_branch_cleanup.py +0 -0
  632. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree_dot_project.py +0 -0
  633. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree_git_truth.py +0 -0
  634. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree_layout.py +0 -0
  635. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_worktree_registry.py +0 -0
  636. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tests/unit/test_zero_access_member_access.py +0 -0
  637. {agentwire_dev-1.77.5 → agentwire_dev-1.78.0}/tools/nonce_stt_probe.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: agentwire-dev
3
- Version: 1.77.5
3
+ Version: 1.78.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
@@ -228,7 +228,7 @@ Requires-Dist: aiohttp-jinja2>=1.6
228
228
  Requires-Dist: aiohttp>=3.13.4
229
229
  Requires-Dist: av>=12.0.0
230
230
  Requires-Dist: certifi>=2026.10.23
231
- Requires-Dist: damage-control-dev<0.2,>=0.1.6
231
+ Requires-Dist: damage-control-dev<0.3,>=0.2.0
232
232
  Requires-Dist: fastapi>=0.104.0
233
233
  Requires-Dist: jinja2>=3.1.0
234
234
  Requires-Dist: kokoro-onnx>=0.4.9; python_version < '3.14'
@@ -6,7 +6,7 @@ Every release does **both** a PyPI publish and a GitHub release. The **GitHub re
6
6
 
7
7
  ## The engine is a separate project (single source)
8
8
 
9
- The damage-control engine has exactly one source: the `damage-control-dev` repo (<https://github.com/dotdevdotdev/damage-control-dev>), published on PyPI. `agentwire-dev` only *consumes* it through the range in `pyproject.toml` (currently `damage-control-dev>=0.1.6,<0.2`); a checkout and a PyPI install both resolve it from PyPI. There is no copy of the engine in this repo and nothing to release from here. `tests/unit/test_damage_control_pin.py` checks that the declared floor/ceiling parse and that the installed engine satisfies them.
9
+ The damage-control engine has exactly one source: the `damage-control-dev` repo (<https://github.com/dotdevdotdev/damage-control-dev>), published on PyPI. `agentwire-dev` only *consumes* it through the range in `pyproject.toml` (currently `damage-control-dev>=0.2.0,<0.3`); a checkout and a PyPI install both resolve it from PyPI. There is no copy of the engine in this repo and nothing to release from here. `tests/unit/test_damage_control_pin.py` checks that the declared floor/ceiling parse and that the installed engine satisfies them.
10
10
 
11
11
  To ship an engine change:
12
12
 
@@ -1,3 +1,3 @@
1
1
  """AgentWire - Multi-session voice web interface for AI coding agents."""
2
2
 
3
- __version__ = "1.77.5"
3
+ __version__ = "1.78.0"
@@ -17,6 +17,7 @@
17
17
  "2c49ab654ff58675a3917d852093bc5f5ecc7d16cab10cd5046d11e8cede9621",
18
18
  "3cf2127d5f470f1fc9b24c3507c091b999110ed2fbb300f19765ac905d457e16",
19
19
  "5ba2be093a035021f04be9f3adcc8a234cf8f04dd63955f8693d72472d7c3a21",
20
+ "7675af135ecb0381130ab5988a54e9860ef975d568fd9025d003481c4a841144",
20
21
  "a30f698ca4156bc9a0715c5df4583c41d026a566d0bd8d534d263bec8b951e74",
21
22
  "a977b051e9ff66490816bbbd562e9106015c4e0950b547422f92debfd7d361f6",
22
23
  "c471a54cf5045348dc1df644852dc5933aa8bfd0e1aee0cddc1a20862128adde"
@@ -42,6 +42,6 @@ bashToolPatterns:
42
42
 
43
43
  # Note: `agentwire tasks promote` (#720/#721) is blocked via
44
44
  # safety/_core.py's PROTECTED_COMMAND_PATTERNS instead of an ordinary
45
- # bashToolPatterns entry here — it needs escape-hatch/kill-switch immunity,
45
+ # bashToolPatterns entry here — it needs `# ask:`/kill-switch immunity,
46
46
  # which only the code-level protected-command check provides (a rule in
47
- # this file would still be overridable by `# allow:`).
47
+ # this file would still be softened by `# ask:`).
@@ -24,8 +24,8 @@ closed):
24
24
  shelled out to `tasks promote` would hand the agent an instant, unguarded
25
25
  bypass of the whole scheme. CLI-only keeps this on the human's own terminal.
26
26
  - `agentwire tasks promote` is ALSO hard-blocked as a `PROTECTED_COMMAND_PATTERNS`
27
- entry in `damage_control/engine.py` — escape-hatch- and kill-switch-EXEMPT (same tier
28
- as the protected-control-plane file check), so `# allow:` and
27
+ entry in `damage_control/engine.py` — `# ask:`- and kill-switch-EXEMPT (same tier
28
+ as the protected-control-plane file check), so `# ask:` and
29
29
  `enabled: false` can't open it either.
30
30
  - `cmd_tasks_promote` ITSELF refuses to run outside a genuine host context
31
31
  (see `_host_context_ok` below), regardless of how it's reached. This is the
@@ -1352,3 +1352,26 @@
1352
1352
  - secrets
1353
1353
  - home
1354
1354
  source: tests/unit/test_damage_control_bypass.py::test_secrets_stay_blocked_wherever_home_is
1355
+ - id: ask-comment-001
1356
+ tool: Bash
1357
+ input: 'git reset --hard origin/main # ask: sync to remote'
1358
+ context:
1359
+ ruleset: full
1360
+ expect:
1361
+ decision: ask
1362
+ class: ask-comment
1363
+ tags:
1364
+ - ask-comment
1365
+ source: tests/unit/test_damage_control_bypass.py::test_ask_comment_turns_a_block_into_an_undemotable_human_confirmation
1366
+ - id: ask-comment-002
1367
+ tool: Bash
1368
+ input: 'git reset --hard origin/main # allow: sync to remote'
1369
+ context:
1370
+ ruleset: full
1371
+ expect:
1372
+ decision: block
1373
+ class: ask-comment
1374
+ tags:
1375
+ - ask-comment
1376
+ - removed-escape
1377
+ source: tests/unit/test_damage_control_bypass.py::test_the_old_allow_comment_has_no_effect
@@ -804,20 +804,20 @@
804
804
  - control-plane
805
805
  - indirect
806
806
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
807
- - id: control-plane-hatch-and-kill-switch-001
807
+ - id: control-plane-ask-and-kill-switch-001
808
808
  tool: Bash
809
- input: 'echo ''enabled: false'' > ~/.agentwire/damagecontrol.yml # allow: I really want to'
809
+ input: 'echo ''enabled: false'' > ~/.agentwire/damagecontrol.yml # ask: I really want to'
810
810
  context:
811
811
  ruleset: full
812
812
  expect:
813
813
  decision: block
814
814
  protected: true
815
- class: control-plane-hatch-and-kill-switch
815
+ class: control-plane-ask-and-kill-switch
816
816
  tags:
817
817
  - control-plane
818
- - variant:hatch
818
+ - variant:ask
819
819
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
820
- - id: control-plane-hatch-and-kill-switch-002
820
+ - id: control-plane-ask-and-kill-switch-002
821
821
  tool: Bash
822
822
  input: 'echo ''enabled: false'' > ~/.agentwire/damagecontrol.yml'
823
823
  context:
@@ -826,25 +826,25 @@
826
826
  expect:
827
827
  decision: block
828
828
  protected: true
829
- class: control-plane-hatch-and-kill-switch
829
+ class: control-plane-ask-and-kill-switch
830
830
  tags:
831
831
  - control-plane
832
832
  - variant:kill-switch-off
833
833
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
834
- - id: control-plane-hatch-and-kill-switch-003
834
+ - id: control-plane-ask-and-kill-switch-003
835
835
  tool: Bash
836
- input: 'echo ''{}'' > ~/.claude/settings.json # allow: I really want to'
836
+ input: 'echo ''{}'' > ~/.claude/settings.json # ask: I really want to'
837
837
  context:
838
838
  ruleset: full
839
839
  expect:
840
840
  decision: block
841
841
  protected: true
842
- class: control-plane-hatch-and-kill-switch
842
+ class: control-plane-ask-and-kill-switch
843
843
  tags:
844
844
  - control-plane
845
- - variant:hatch
845
+ - variant:ask
846
846
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
847
- - id: control-plane-hatch-and-kill-switch-004
847
+ - id: control-plane-ask-and-kill-switch-004
848
848
  tool: Bash
849
849
  input: echo '{}' > ~/.claude/settings.json
850
850
  context:
@@ -853,25 +853,25 @@
853
853
  expect:
854
854
  decision: block
855
855
  protected: true
856
- class: control-plane-hatch-and-kill-switch
856
+ class: control-plane-ask-and-kill-switch
857
857
  tags:
858
858
  - control-plane
859
859
  - variant:kill-switch-off
860
860
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
861
- - id: control-plane-hatch-and-kill-switch-005
861
+ - id: control-plane-ask-and-kill-switch-005
862
862
  tool: Bash
863
- input: 'rm ~/.agentwire/damage-control/core.yaml # allow: I really want to'
863
+ input: 'rm ~/.agentwire/damage-control/core.yaml # ask: I really want to'
864
864
  context:
865
865
  ruleset: full
866
866
  expect:
867
867
  decision: block
868
868
  protected: true
869
- class: control-plane-hatch-and-kill-switch
869
+ class: control-plane-ask-and-kill-switch
870
870
  tags:
871
871
  - control-plane
872
- - variant:hatch
872
+ - variant:ask
873
873
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
874
- - id: control-plane-hatch-and-kill-switch-006
874
+ - id: control-plane-ask-and-kill-switch-006
875
875
  tool: Bash
876
876
  input: rm ~/.agentwire/damage-control/core.yaml
877
877
  context:
@@ -880,25 +880,25 @@
880
880
  expect:
881
881
  decision: block
882
882
  protected: true
883
- class: control-plane-hatch-and-kill-switch
883
+ class: control-plane-ask-and-kill-switch
884
884
  tags:
885
885
  - control-plane
886
886
  - variant:kill-switch-off
887
887
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
888
- - id: control-plane-hatch-and-kill-switch-007
888
+ - id: control-plane-ask-and-kill-switch-007
889
889
  tool: Bash
890
- input: 'sed -i ''s/x/y/'' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py # allow: I really want to'
890
+ input: 'sed -i ''s/x/y/'' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py # ask: I really want to'
891
891
  context:
892
892
  ruleset: full
893
893
  expect:
894
894
  decision: block
895
895
  protected: true
896
- class: control-plane-hatch-and-kill-switch
896
+ class: control-plane-ask-and-kill-switch
897
897
  tags:
898
898
  - control-plane
899
- - variant:hatch
899
+ - variant:ask
900
900
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
901
- - id: control-plane-hatch-and-kill-switch-008
901
+ - id: control-plane-ask-and-kill-switch-008
902
902
  tool: Bash
903
903
  input: sed -i 's/x/y/' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py
904
904
  context:
@@ -907,25 +907,25 @@
907
907
  expect:
908
908
  decision: block
909
909
  protected: true
910
- class: control-plane-hatch-and-kill-switch
910
+ class: control-plane-ask-and-kill-switch
911
911
  tags:
912
912
  - control-plane
913
913
  - variant:kill-switch-off
914
914
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
915
- - id: control-plane-hatch-and-kill-switch-009
915
+ - id: control-plane-ask-and-kill-switch-009
916
916
  tool: Bash
917
- input: 'echo ''enabled: false'' > .damagecontrol.yml # allow: I really want to'
917
+ input: 'echo ''enabled: false'' > .damagecontrol.yml # ask: I really want to'
918
918
  context:
919
919
  ruleset: full
920
920
  expect:
921
921
  decision: block
922
922
  protected: true
923
- class: control-plane-hatch-and-kill-switch
923
+ class: control-plane-ask-and-kill-switch
924
924
  tags:
925
925
  - control-plane
926
- - variant:hatch
926
+ - variant:ask
927
927
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
928
- - id: control-plane-hatch-and-kill-switch-010
928
+ - id: control-plane-ask-and-kill-switch-010
929
929
  tool: Bash
930
930
  input: 'echo ''enabled: false'' > .damagecontrol.yml'
931
931
  context:
@@ -934,25 +934,25 @@
934
934
  expect:
935
935
  decision: block
936
936
  protected: true
937
- class: control-plane-hatch-and-kill-switch
937
+ class: control-plane-ask-and-kill-switch
938
938
  tags:
939
939
  - control-plane
940
940
  - variant:kill-switch-off
941
941
  source: tests/unit/test_control_plane_protection.py::BASH_WRITES
942
- - id: control-plane-hatch-and-kill-switch-011
942
+ - id: control-plane-ask-and-kill-switch-011
943
943
  tool: Bash
944
- input: 'ln -sf /tmp/x ~/.agentwire/damagecontrol.yml # allow: I really want to'
944
+ input: 'ln -sf /tmp/x ~/.agentwire/damagecontrol.yml # ask: I really want to'
945
945
  context:
946
946
  ruleset: full
947
947
  expect:
948
948
  decision: block
949
949
  protected: true
950
- class: control-plane-hatch-and-kill-switch
950
+ class: control-plane-ask-and-kill-switch
951
951
  tags:
952
952
  - control-plane
953
- - variant:hatch
953
+ - variant:ask
954
954
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
955
- - id: control-plane-hatch-and-kill-switch-012
955
+ - id: control-plane-ask-and-kill-switch-012
956
956
  tool: Bash
957
957
  input: ln -sf /tmp/x ~/.agentwire/damagecontrol.yml
958
958
  context:
@@ -961,25 +961,25 @@
961
961
  expect:
962
962
  decision: block
963
963
  protected: true
964
- class: control-plane-hatch-and-kill-switch
964
+ class: control-plane-ask-and-kill-switch
965
965
  tags:
966
966
  - control-plane
967
967
  - variant:kill-switch-off
968
968
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
969
- - id: control-plane-hatch-and-kill-switch-013
969
+ - id: control-plane-ask-and-kill-switch-013
970
970
  tool: Bash
971
- input: 'tar xf /tmp/a.tar -C ~/.claude/hooks # allow: I really want to'
971
+ input: 'tar xf /tmp/a.tar -C ~/.claude/hooks # ask: I really want to'
972
972
  context:
973
973
  ruleset: full
974
974
  expect:
975
975
  decision: block
976
976
  protected: true
977
- class: control-plane-hatch-and-kill-switch
977
+ class: control-plane-ask-and-kill-switch
978
978
  tags:
979
979
  - control-plane
980
- - variant:hatch
980
+ - variant:ask
981
981
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
982
- - id: control-plane-hatch-and-kill-switch-014
982
+ - id: control-plane-ask-and-kill-switch-014
983
983
  tool: Bash
984
984
  input: tar xf /tmp/a.tar -C ~/.claude/hooks
985
985
  context:
@@ -988,25 +988,25 @@
988
988
  expect:
989
989
  decision: block
990
990
  protected: true
991
- class: control-plane-hatch-and-kill-switch
991
+ class: control-plane-ask-and-kill-switch
992
992
  tags:
993
993
  - control-plane
994
994
  - variant:kill-switch-off
995
995
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
996
- - id: control-plane-hatch-and-kill-switch-015
996
+ - id: control-plane-ask-and-kill-switch-015
997
997
  tool: Bash
998
- input: 'patch ~/.claude/settings.json /tmp/p.diff # allow: I really want to'
998
+ input: 'patch ~/.claude/settings.json /tmp/p.diff # ask: I really want to'
999
999
  context:
1000
1000
  ruleset: full
1001
1001
  expect:
1002
1002
  decision: block
1003
1003
  protected: true
1004
- class: control-plane-hatch-and-kill-switch
1004
+ class: control-plane-ask-and-kill-switch
1005
1005
  tags:
1006
1006
  - control-plane
1007
- - variant:hatch
1007
+ - variant:ask
1008
1008
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1009
- - id: control-plane-hatch-and-kill-switch-016
1009
+ - id: control-plane-ask-and-kill-switch-016
1010
1010
  tool: Bash
1011
1011
  input: patch ~/.claude/settings.json /tmp/p.diff
1012
1012
  context:
@@ -1015,25 +1015,25 @@
1015
1015
  expect:
1016
1016
  decision: block
1017
1017
  protected: true
1018
- class: control-plane-hatch-and-kill-switch
1018
+ class: control-plane-ask-and-kill-switch
1019
1019
  tags:
1020
1020
  - control-plane
1021
1021
  - variant:kill-switch-off
1022
1022
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1023
- - id: control-plane-hatch-and-kill-switch-017
1023
+ - id: control-plane-ask-and-kill-switch-017
1024
1024
  tool: Bash
1025
- input: 'printf ''rm %s'' ~/.claude/settings.json | sh # allow: I really want to'
1025
+ input: 'printf ''rm %s'' ~/.claude/settings.json | sh # ask: I really want to'
1026
1026
  context:
1027
1027
  ruleset: full
1028
1028
  expect:
1029
1029
  decision: block
1030
1030
  protected: true
1031
- class: control-plane-hatch-and-kill-switch
1031
+ class: control-plane-ask-and-kill-switch
1032
1032
  tags:
1033
1033
  - control-plane
1034
- - variant:hatch
1034
+ - variant:ask
1035
1035
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1036
- - id: control-plane-hatch-and-kill-switch-018
1036
+ - id: control-plane-ask-and-kill-switch-018
1037
1037
  tool: Bash
1038
1038
  input: printf 'rm %s' ~/.claude/settings.json | sh
1039
1039
  context:
@@ -1042,25 +1042,25 @@
1042
1042
  expect:
1043
1043
  decision: block
1044
1044
  protected: true
1045
- class: control-plane-hatch-and-kill-switch
1045
+ class: control-plane-ask-and-kill-switch
1046
1046
  tags:
1047
1047
  - control-plane
1048
1048
  - variant:kill-switch-off
1049
1049
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1050
- - id: control-plane-hatch-and-kill-switch-019
1050
+ - id: control-plane-ask-and-kill-switch-019
1051
1051
  tool: Bash
1052
- input: 'echo x >| ~/.agentwire/damagecontrol.yml # allow: I really want to'
1052
+ input: 'echo x >| ~/.agentwire/damagecontrol.yml # ask: I really want to'
1053
1053
  context:
1054
1054
  ruleset: full
1055
1055
  expect:
1056
1056
  decision: block
1057
1057
  protected: true
1058
- class: control-plane-hatch-and-kill-switch
1058
+ class: control-plane-ask-and-kill-switch
1059
1059
  tags:
1060
1060
  - control-plane
1061
- - variant:hatch
1061
+ - variant:ask
1062
1062
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1063
- - id: control-plane-hatch-and-kill-switch-020
1063
+ - id: control-plane-ask-and-kill-switch-020
1064
1064
  tool: Bash
1065
1065
  input: echo x >| ~/.agentwire/damagecontrol.yml
1066
1066
  context:
@@ -1069,25 +1069,25 @@
1069
1069
  expect:
1070
1070
  decision: block
1071
1071
  protected: true
1072
- class: control-plane-hatch-and-kill-switch
1072
+ class: control-plane-ask-and-kill-switch
1073
1073
  tags:
1074
1074
  - control-plane
1075
1075
  - variant:kill-switch-off
1076
1076
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1077
- - id: control-plane-hatch-and-kill-switch-021
1077
+ - id: control-plane-ask-and-kill-switch-021
1078
1078
  tool: Bash
1079
- input: 'echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log # allow: I really want to'
1079
+ input: 'echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log # ask: I really want to'
1080
1080
  context:
1081
1081
  ruleset: full
1082
1082
  expect:
1083
1083
  decision: block
1084
1084
  protected: true
1085
- class: control-plane-hatch-and-kill-switch
1085
+ class: control-plane-ask-and-kill-switch
1086
1086
  tags:
1087
1087
  - control-plane
1088
- - variant:hatch
1088
+ - variant:ask
1089
1089
  source: tests/unit/test_control_plane_protection.py::INDIRECT_WRITES
1090
- - id: control-plane-hatch-and-kill-switch-022
1090
+ - id: control-plane-ask-and-kill-switch-022
1091
1091
  tool: Bash
1092
1092
  input: echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log
1093
1093
  context:
@@ -1096,7 +1096,7 @@
1096
1096
  expect:
1097
1097
  decision: block
1098
1098
  protected: true
1099
- class: control-plane-hatch-and-kill-switch
1099
+ class: control-plane-ask-and-kill-switch
1100
1100
  tags:
1101
1101
  - control-plane
1102
1102
  - variant:kill-switch-off
@@ -1367,7 +1367,7 @@
1367
1367
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1368
1368
  - id: promote-blocked-002
1369
1369
  tool: Bash
1370
- input: 'agentwire tasks promote # allow: I really want to'
1370
+ input: 'agentwire tasks promote # ask: I really want to'
1371
1371
  context:
1372
1372
  ruleset: full
1373
1373
  expect:
@@ -1376,7 +1376,7 @@
1376
1376
  class: promote-blocked
1377
1377
  tags:
1378
1378
  - promote
1379
- - variant:hatch
1379
+ - variant:ask
1380
1380
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1381
1381
  - id: promote-blocked-003
1382
1382
  tool: Bash
@@ -1420,7 +1420,7 @@
1420
1420
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1421
1421
  - id: promote-blocked-006
1422
1422
  tool: Bash
1423
- input: 'agentwire tasks promote --yes # allow: I really want to'
1423
+ input: 'agentwire tasks promote --yes # ask: I really want to'
1424
1424
  context:
1425
1425
  ruleset: full
1426
1426
  expect:
@@ -1429,7 +1429,7 @@
1429
1429
  class: promote-blocked
1430
1430
  tags:
1431
1431
  - promote
1432
- - variant:hatch
1432
+ - variant:ask
1433
1433
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1434
1434
  - id: promote-blocked-007
1435
1435
  tool: Bash
@@ -1473,7 +1473,7 @@
1473
1473
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1474
1474
  - id: promote-blocked-010
1475
1475
  tool: Bash
1476
- input: 'uv run agentwire tasks promote --yes # allow: I really want to'
1476
+ input: 'uv run agentwire tasks promote --yes # ask: I really want to'
1477
1477
  context:
1478
1478
  ruleset: full
1479
1479
  expect:
@@ -1482,7 +1482,7 @@
1482
1482
  class: promote-blocked
1483
1483
  tags:
1484
1484
  - promote
1485
- - variant:hatch
1485
+ - variant:ask
1486
1486
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1487
1487
  - id: promote-blocked-011
1488
1488
  tool: Bash
@@ -1526,7 +1526,7 @@
1526
1526
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1527
1527
  - id: promote-blocked-014
1528
1528
  tool: Bash
1529
- input: 'python3 -m agentwire tasks promote --yes # allow: I really want to'
1529
+ input: 'python3 -m agentwire tasks promote --yes # ask: I really want to'
1530
1530
  context:
1531
1531
  ruleset: full
1532
1532
  expect:
@@ -1535,7 +1535,7 @@
1535
1535
  class: promote-blocked
1536
1536
  tags:
1537
1537
  - promote
1538
- - variant:hatch
1538
+ - variant:ask
1539
1539
  source: tests/unit/test_control_plane_protection.py::PROMOTE_COMMANDS
1540
1540
  - id: promote-blocked-015
1541
1541
  tool: Bash
@@ -223,7 +223,7 @@
223
223
  source: tests/unit/test_relative_path_operands.py::CASES
224
224
  - id: relative-path-operand-020
225
225
  tool: Bash
226
- input: 'echo x > .claude/settings.json # allow: because'
226
+ input: 'echo x > .claude/settings.json # ask: because'
227
227
  context:
228
228
  cwd: /golden/elsewhere
229
229
  expect:
@@ -284,7 +284,7 @@
284
284
  source: tests/unit/test_relative_path_operands.py::CASES
285
285
  - id: relative-path-operand-025
286
286
  tool: Bash
287
- input: 'echo x > .claude/settings.json # allow: because'
287
+ input: 'echo x > .claude/settings.json # ask: because'
288
288
  context:
289
289
  cwd: /golden/home
290
290
  expect:
@@ -292,5 +292,5 @@
292
292
  protected: true
293
293
  class: relative-path-operand
294
294
  tags:
295
- - escape-hatch
295
+ - ask-comment
296
296
  source: tests/unit/test_relative_path_operands.py::CASES
@@ -48,9 +48,9 @@
48
48
  "a[1]=x; cat <<'EOF'\nbody\nEOF\nrm -rf /",
49
49
  "agentwire msg send --to orch --kind done \"removed the rm -rf /tmp/x call\"",
50
50
  "agentwire tasks promote",
51
- "agentwire tasks promote # allow: I really want to",
51
+ "agentwire tasks promote # ask: I really want to",
52
52
  "agentwire tasks promote --yes",
53
- "agentwire tasks promote --yes # allow: I really want to",
53
+ "agentwire tasks promote --yes # ask: I really want to",
54
54
  "agentwire tasks promote x",
55
55
  "agentwire tasks review",
56
56
  "bash -c 'rm -rf /tmp/x'",
@@ -203,9 +203,9 @@
203
203
  "echo ${#PATH}<<'EOF'\nbody\nEOF\ngit -C ~/.agentwire checkout damagecontrol.yml",
204
204
  "echo ${#PATH}<<'EOF'\nbody\nEOF\nrm -rf /",
205
205
  "echo 'enabled: false' > .damagecontrol.yml",
206
- "echo 'enabled: false' > .damagecontrol.yml # allow: I really want to",
206
+ "echo 'enabled: false' > .damagecontrol.yml # ask: I really want to",
207
207
  "echo 'enabled: false' > ~/.agentwire/damagecontrol.yml",
208
- "echo 'enabled: false' > ~/.agentwire/damagecontrol.yml # allow: I really want to",
208
+ "echo 'enabled: false' > ~/.agentwire/damagecontrol.yml # ask: I really want to",
209
209
  "echo 'open(\".agentwire.tasks.yml\",\"w\")' | python3",
210
210
  "echo 'rm -rf /tmp/x' | sh",
211
211
  "echo 'roles: [agentwire]' > .agentwire.yml",
@@ -214,7 +214,7 @@
214
214
  "echo 'the ~/.claude/settings.json is' | python3 -c 'import sys,os; os.system(\"echo hi > \"+sys.stdin.read().split()[1])'",
215
215
  "echo 'x' > ~/.agentwire/scheduler.yaml",
216
216
  "echo '{}' > ~/.claude/settings.json",
217
- "echo '{}' > ~/.claude/settings.json # allow: I really want to",
217
+ "echo '{}' > ~/.claude/settings.json # ask: I really want to",
218
218
  "echo README.md | xargs rm",
219
219
  "echo \\\\<<'EOF'\nbody\nEOF\ncd ~/.agentwire && touch damagecontrol.yml",
220
220
  "echo \\\\<<'EOF'\nbody\nEOF\necho x >| ~/.agentwire/damagecontrol.yml",
@@ -242,9 +242,9 @@
242
242
  "echo x > ~/.agentwire/damagecontrol.yml",
243
243
  "echo x >> /some/repo/.agentwire.tasks.yml",
244
244
  "echo x >| ~/.agentwire/damagecontrol.yml",
245
- "echo x >| ~/.agentwire/damagecontrol.yml # allow: I really want to",
245
+ "echo x >| ~/.agentwire/damagecontrol.yml # ask: I really want to",
246
246
  "echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log",
247
- "echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log # allow: I really want to",
247
+ "echo x | tee ~/.agentwire/config.yaml /tmp/my-app.log # ask: I really want to",
248
248
  "echo x | tee ~/.agentwire/damagecontrol.yml --append",
249
249
  "echo x | tee ~/.agentwire/damagecontrol.yml -a",
250
250
  "echo x | tee ~/.agentwire/scheduler.yaml # my-app",
@@ -310,8 +310,9 @@
310
310
  "git push origin main --force",
311
311
  "git reset --hard HEAD~3",
312
312
  "git reset --hard origin/main",
313
- "git reset --hard origin/main # allow: ",
314
313
  "git reset --hard origin/main # allow: sync to remote",
314
+ "git reset --hard origin/main # ask: ",
315
+ "git reset --hard origin/main # ask: sync to remote",
315
316
  "git stash && psql -c \"DROP TABLE users\"",
316
317
  "git status",
317
318
  "grep -c TOKEN .env",
@@ -330,7 +331,7 @@
330
331
  "kill -9 -1",
331
332
  "ln -s ~/.agentwire/damagecontrol.yml /tmp/link",
332
333
  "ln -sf /tmp/x ~/.agentwire/damagecontrol.yml",
333
- "ln -sf /tmp/x ~/.agentwire/damagecontrol.yml # allow: I really want to",
334
+ "ln -sf /tmp/x ~/.agentwire/damagecontrol.yml # ask: I really want to",
334
335
  "ln -sf /tmp/x ~/.claude/settings.json",
335
336
  "ls $(pwd)/sub",
336
337
  "ls -la",
@@ -347,13 +348,13 @@
347
348
  "npm run build",
348
349
  "npm unpublish left-pad",
349
350
  "patch ~/.claude/settings.json /tmp/p.diff",
350
- "patch ~/.claude/settings.json /tmp/p.diff # allow: I really want to",
351
+ "patch ~/.claude/settings.json /tmp/p.diff # ask: I really want to",
351
352
  "perl -e 'open(F, \">\", \".agentwire.tasks.yml\")'",
352
353
  "perl -e 'open(F, \">\", \"~/.claude/settings.json\")'",
353
354
  "perl -e 'print \"see ~/.claude/settings.json by hand\"'",
354
355
  "perl -e 'unlink glob(\"/important/*\")'",
355
356
  "printf 'rm %s' ~/.claude/settings.json | sh",
356
- "printf 'rm %s' ~/.claude/settings.json | sh # allow: I really want to",
357
+ "printf 'rm %s' ~/.claude/settings.json | sh # ask: I really want to",
357
358
  "psql -c \"$(cat drop.sql)\"",
358
359
  "psql -c \"DROP DATABASE prod\"",
359
360
  "psql -c \"SELECT 1\"",
@@ -374,7 +375,7 @@
374
375
  "python3 -c 'import subprocess; subprocess.run([\"cp\",\"/tmp/a\",\"~/.claude/settings.json is x\"])'",
375
376
  "python3 -c 'open(\".agentwire.tasks.yml\", \"w\").write(\"x\")'",
376
377
  "python3 -m agentwire tasks promote --yes",
377
- "python3 -m agentwire tasks promote --yes # allow: I really want to",
378
+ "python3 -m agentwire tasks promote --yes # ask: I really want to",
378
379
  "python3 -m pytest tests/unit",
379
380
  "r\"\"m -rf /x",
380
381
  "r''m -rf /x",
@@ -383,7 +384,7 @@
383
384
  "rm -rf /",
384
385
  "rm -rf /x",
385
386
  "rm ~/.agentwire/damage-control/core.yaml",
386
- "rm ~/.agentwire/damage-control/core.yaml # allow: I really want to",
387
+ "rm ~/.agentwire/damage-control/core.yaml # ask: I really want to",
387
388
  "sed 's|x|y|' notes.txt > dist/out.js",
388
389
  "sed -i \"s|a|$(echo dist/x)|\" notes.txt",
389
390
  "sed -i '' 's/a/b/' dist/app.js",
@@ -393,7 +394,7 @@
393
394
  "sed -i 's/a/b/e' dist/x.js",
394
395
  "sed -i 's/a/b/w dist/out.js' notes.txt",
395
396
  "sed -i 's/x/y/' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py",
396
- "sed -i 's/x/y/' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py # allow: I really want to",
397
+ "sed -i 's/x/y/' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py # ask: I really want to",
397
398
  "sh -c 'psql -c \"DROP TABLE users\"'",
398
399
  "sh <<EOF\nrm ~/.agentwire/damagecontrol.yml\nEOF",
399
400
  "ssh host 'rm -rf /tmp/x'",
@@ -401,7 +402,7 @@
401
402
  "ssh prod \"$(cat dangerous.sh)\"",
402
403
  "sudo rm -rf /tmp/x",
403
404
  "tar xf /tmp/a.tar -C ~/.claude/hooks",
404
- "tar xf /tmp/a.tar -C ~/.claude/hooks # allow: I really want to",
405
+ "tar xf /tmp/a.tar -C ~/.claude/hooks # ask: I really want to",
405
406
  "tee \"/some/repo/.agentwire.tasks.yml\" < /tmp/x",
406
407
  "tmux -L sock kill-server",
407
408
  "tmux -L sock list-sessions",
@@ -412,7 +413,7 @@
412
413
  "uv run $(echo rm) -rf /srv/x",
413
414
  "uv run --extra dev pytest tests/unit -q",
414
415
  "uv run agentwire tasks promote --yes",
415
- "uv run agentwire tasks promote --yes # allow: I really want to",
416
+ "uv run agentwire tasks promote --yes # ask: I really want to",
416
417
  "uv run amo status 2>&1",
417
418
  "uv run bash -c 'git push --force origin main'",
418
419
  "uv run bash -c 'rm -rf /tmp/x'",