agentwire-dev 1.81.0__tar.gz → 1.82.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 (652) hide show
  1. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/PKG-INFO +2 -2
  2. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/RELEASING.md +1 -1
  3. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/__init__.py +1 -1
  4. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rule_baselines.json +1 -0
  5. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/cases/relative_paths.yaml +6 -6
  6. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/golden/effective_rules.json +13 -1
  7. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/golden/rule_ids.json +12 -0
  8. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/golden/snapshot.json +52 -16
  9. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/pyproject.toml +1 -1
  10. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_policy_ladder.py +1 -0
  11. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_powershell_matcher.py +4 -2
  12. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_relative_path_operands.py +2 -2
  13. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_packs.py +10 -2
  14. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.agentwire.yml.example +0 -0
  15. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.claude/commands/handoff.md +0 -0
  16. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.claude/skills/wiki/SKILL.md +0 -0
  17. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/FUNDING.yml +0 -0
  18. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  19. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  20. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
  21. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  22. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/workflows/pytest.yml +0 -0
  23. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/workflows/ruff.yml +0 -0
  24. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/workflows/security.yml +0 -0
  25. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.github/workflows/tts-smoke.yml +0 -0
  26. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/.gitignore +0 -0
  27. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/AGENTS.md +0 -0
  28. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/CODE_OF_CONDUCT.md +0 -0
  29. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/CONTRIBUTING.md +0 -0
  30. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/Dockerfile.local +0 -0
  31. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/LICENSE +0 -0
  32. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/README.md +0 -0
  33. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/SECURITY.md +0 -0
  34. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/SPONSORS.md +0 -0
  35. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/__main__.py +0 -0
  36. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/agents/__init__.py +0 -0
  37. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/agents/base.py +0 -0
  38. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/agents/tmux.py +0 -0
  39. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/auth_expired.py +0 -0
  40. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/background_tasks.py +0 -0
  41. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/beta.py +0 -0
  42. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/cached_status.py +0 -0
  43. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels/__init__.py +0 -0
  44. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels/base.py +0 -0
  45. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels/email.py +0 -0
  46. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels/push.py +0 -0
  47. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels/quo.py +0 -0
  48. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/channels_cli.py +0 -0
  49. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/chrome_tabs.py +0 -0
  50. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/claude_settings.py +0 -0
  51. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/cohort.py +0 -0
  52. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/completion.py +0 -0
  53. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/config.py +0 -0
  54. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/config_cli.py +0 -0
  55. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/core.py +0 -0
  56. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/__init__.py +0 -0
  57. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/cli.py +0 -0
  58. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/inbox.py +0 -0
  59. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/minutes.py +0 -0
  60. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/state.py +0 -0
  61. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/council/view.py +0 -0
  62. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/devices.py +0 -0
  63. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/diff_cli.py +0 -0
  64. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/doctor_cli.py +0 -0
  65. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/doctor_voice.py +0 -0
  66. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/ensure_cli.py +0 -0
  67. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/env_loader.py +0 -0
  68. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/fetch.py +0 -0
  69. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/fleet.py +0 -0
  70. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/fleet_cli.py +0 -0
  71. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/__init__.py +0 -0
  72. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/git_state.py +0 -0
  73. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/instructions.py +0 -0
  74. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/parser.py +0 -0
  75. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/renderer.py +0 -0
  76. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff/schema.py +0 -0
  77. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/handoff_cli.py +0 -0
  78. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/history.py +0 -0
  79. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/history_cli.py +0 -0
  80. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/history_migrate.py +0 -0
  81. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/__init__.py +0 -0
  82. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/agentwire-permission.sh +0 -0
  83. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/idle-handler.sh +0 -0
  84. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/outcome_logger.py +0 -0
  85. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/queue-processor.sh +0 -0
  86. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks/session-start-handler.sh +0 -0
  87. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/hooks_cli.py +0 -0
  88. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/inbox.py +0 -0
  89. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/limits_cli.py +0 -0
  90. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/listen.py +0 -0
  91. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/locking.py +0 -0
  92. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/machine_cli.py +0 -0
  93. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_channels.py +0 -0
  94. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_chrome.py +0 -0
  95. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_cli.py +0 -0
  96. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_core.py +0 -0
  97. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_council.py +0 -0
  98. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_desktop.py +0 -0
  99. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_handoff.py +0 -0
  100. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_history.py +0 -0
  101. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_listen.py +0 -0
  102. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_lock.py +0 -0
  103. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_machine.py +0 -0
  104. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_msg.py +0 -0
  105. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_notify.py +0 -0
  106. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_pane.py +0 -0
  107. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_projects.py +0 -0
  108. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_scheduler.py +0 -0
  109. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_scratchpad.py +0 -0
  110. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_server.py +0 -0
  111. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_services.py +0 -0
  112. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_session.py +0 -0
  113. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_status.py +0 -0
  114. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_task.py +0 -0
  115. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_tunnels.py +0 -0
  116. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_voice.py +0 -0
  117. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_wiki.py +0 -0
  118. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/mcp_worktree.py +0 -0
  119. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/msg_cli.py +0 -0
  120. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/network.py +0 -0
  121. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/notify_cli.py +0 -0
  122. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/onboarding.py +0 -0
  123. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/palette_cli.py +0 -0
  124. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/pane_cli.py +0 -0
  125. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/pane_manager.py +0 -0
  126. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/playback_lane.py +0 -0
  127. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/portal_cli.py +0 -0
  128. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/project_config.py +0 -0
  129. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/projects.py +0 -0
  130. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/prompt_router.py +0 -0
  131. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/prompts_cli.py +0 -0
  132. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/push_cli.py +0 -0
  133. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/push_store.py +0 -0
  134. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/repo_cli.py +0 -0
  135. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/research.py +0 -0
  136. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/restart_cli.py +0 -0
  137. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/role_prompts.py +0 -0
  138. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/__init__.py +0 -0
  139. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/agentwire.md +0 -0
  140. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/anchor.md +0 -0
  141. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/chatbot.md +0 -0
  142. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/contributor.md +0 -0
  143. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/correspondent.md +0 -0
  144. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-brain.md +0 -0
  145. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-conscience.md +0 -0
  146. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-critic.md +0 -0
  147. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-devils-advocate.md +0 -0
  148. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-gut.md +0 -0
  149. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-historian.md +0 -0
  150. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-member.md +0 -0
  151. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/council-orchestrator.md +0 -0
  152. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/init.md +0 -0
  153. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/notifications.md +0 -0
  154. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/orchestrator.md +0 -0
  155. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/reviewer-worktree.md +0 -0
  156. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/reviewer.md +0 -0
  157. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/shared-checkout.md +0 -0
  158. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/soul.md +0 -0
  159. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/task-runner.md +0 -0
  160. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/voice.md +0 -0
  161. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/worker-worktree.md +0 -0
  162. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles/worker.md +0 -0
  163. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/roles_cli.py +0 -0
  164. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/__init__.py +0 -0
  165. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/artifacts.py +0 -0
  166. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/config.py +0 -0
  167. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/council.py +0 -0
  168. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/desktop.py +0 -0
  169. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/history.py +0 -0
  170. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/machines.py +0 -0
  171. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/notify.py +0 -0
  172. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/palette.py +0 -0
  173. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/permission.py +0 -0
  174. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/projects.py +0 -0
  175. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/push.py +0 -0
  176. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/safety.py +0 -0
  177. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/scheduler.py +0 -0
  178. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/scratchpad.py +0 -0
  179. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/sessions.py +0 -0
  180. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/sessions_admin.py +0 -0
  181. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/routes/voice.py +0 -0
  182. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/__init__.py +0 -0
  183. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/audit.py +0 -0
  184. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/lint.py +0 -0
  185. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/provenance.py +0 -0
  186. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/residuals.py +0 -0
  187. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-control-plane.json +0 -0
  188. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-control-plane.yaml +0 -0
  189. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-core.json +0 -0
  190. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-core.yaml +0 -0
  191. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-mcp-tools.json +0 -0
  192. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-mcp-tools.yaml +0 -0
  193. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-outbound.json +0 -0
  194. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire-outbound.yaml +0 -0
  195. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire.json +0 -0
  196. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/rules/agentwire.yaml +0 -0
  197. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety/suggest.py +0 -0
  198. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_cli.py +0 -0
  199. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_commands.py +0 -0
  200. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_ext.py +0 -0
  201. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_migrate.py +0 -0
  202. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_notify.py +0 -0
  203. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/safety_packs_cli.py +0 -0
  204. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/sandbox.py +0 -0
  205. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/__init__.py +0 -0
  206. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/dispatch.py +0 -0
  207. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/gates.py +0 -0
  208. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/loop.py +0 -0
  209. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/models.py +0 -0
  210. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/report.py +0 -0
  211. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/schedule.py +0 -0
  212. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/state.py +0 -0
  213. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler/zombie.py +0 -0
  214. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scheduler_cli.py +0 -0
  215. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/scratchpad.py +0 -0
  216. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/security.py +0 -0
  217. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/send_cli.py +0 -0
  218. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/sent_ledger.py +0 -0
  219. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/server.py +0 -0
  220. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/services.py +0 -0
  221. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/session_cli.py +0 -0
  222. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/session_context.py +0 -0
  223. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/session_ready.py +0 -0
  224. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/session_state.py +0 -0
  225. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/ssh.py +0 -0
  226. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
  227. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
  228. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
  229. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
  230. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
  231. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/announcements.json +0 -0
  232. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/apple-touch-icon.png +0 -0
  233. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/css/desktop.css +0 -0
  234. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/css/mobile.css +0 -0
  235. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/favicon-32.png +0 -0
  236. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/favicon-64.png +0 -0
  237. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/bear.webp +0 -0
  238. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/cat.webp +0 -0
  239. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/crown.webp +0 -0
  240. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/custom/agentwire-portal.webp +0 -0
  241. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/custom/agentwire-tts.webp +0 -0
  242. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/custom/agentwire.webp +0 -0
  243. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/deer.webp +0 -0
  244. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/drone.webp +0 -0
  245. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/eagle.webp +0 -0
  246. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/fox.webp +0 -0
  247. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/hawk.webp +0 -0
  248. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/horse.webp +0 -0
  249. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/lion.webp +0 -0
  250. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/rabbit.webp +0 -0
  251. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/robot.webp +0 -0
  252. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/tiger.webp +0 -0
  253. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/icons/sessions/wolf.webp +0 -0
  254. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/img/icon-192.png +0 -0
  255. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/img/icon-512.png +0 -0
  256. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/.gitkeep +0 -0
  257. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/announcement-modal.js +0 -0
  258. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/api.js +0 -0
  259. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/artifact-window.js +0 -0
  260. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/card-terminal.js +0 -0
  261. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/collage.js +0 -0
  262. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/command-palette.js +0 -0
  263. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/council-window.js +0 -0
  264. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/dead-key-residue.js +0 -0
  265. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/desktop-manager.js +0 -0
  266. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/desktop.js +0 -0
  267. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/help-modal.js +0 -0
  268. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/hotkeys.js +0 -0
  269. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/icon-manager.js +0 -0
  270. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/lineage.js +0 -0
  271. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/mobile.js +0 -0
  272. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/notification-prefs.js +0 -0
  273. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/notifications-panel.js +0 -0
  274. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/ptt.js +0 -0
  275. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/push-client.js +0 -0
  276. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/review-window.js +0 -0
  277. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/safety-shared.js +0 -0
  278. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/safety-window.js +0 -0
  279. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/scratchpad.js +0 -0
  280. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/service-classification.js +0 -0
  281. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-hud-controller.js +0 -0
  282. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-hud-notices.js +0 -0
  283. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-hud-spawn.js +0 -0
  284. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-hud.js +0 -0
  285. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-id.js +0 -0
  286. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/session-window.js +0 -0
  287. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/shortcuts.js +0 -0
  288. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
  289. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/config-section.js +0 -0
  290. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/council-section.js +0 -0
  291. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/fleet-section.js +0 -0
  292. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/machines-section.js +0 -0
  293. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/projects-section.js +0 -0
  294. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/safety-section.js +0 -0
  295. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
  296. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/services-section.js +0 -0
  297. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar/sessions-section.js +0 -0
  298. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/sidebar.js +0 -0
  299. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/spawn-ghost.js +0 -0
  300. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/taskbar-persist.js +0 -0
  301. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/terminal-font-prefs.js +0 -0
  302. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/terminal-pane.js +0 -0
  303. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/tile-manager.js +0 -0
  304. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/toast.js +0 -0
  305. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/token-modal.js +0 -0
  306. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/topology-render.js +0 -0
  307. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/utils/ansi.js +0 -0
  308. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/utils/rich-text.js +0 -0
  309. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/utils/swipe.js +0 -0
  310. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/audio-unlock.js +0 -0
  311. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/autosend-prefs.js +0 -0
  312. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/browser-stt.js +0 -0
  313. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/browser-tts.js +0 -0
  314. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/jargon.js +0 -0
  315. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/voice/prompt.js +0 -0
  316. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/winbox.bundle.min.js +0 -0
  317. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/js/workspace-window.js +0 -0
  318. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/manifest.webmanifest +0 -0
  319. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/service-worker.js +0 -0
  320. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/static/topology-harness.html +0 -0
  321. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/__init__.py +0 -0
  322. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/base.py +0 -0
  323. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/cloud.py +0 -0
  324. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/engine.py +0 -0
  325. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/local.py +0 -0
  326. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/server_backend.py +0 -0
  327. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/stt/stt_server.py +0 -0
  328. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/system_cli.py +0 -0
  329. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tabs_cli.py +0 -0
  330. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tasks.py +0 -0
  331. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tasks_cli.py +0 -0
  332. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/__init__.py +0 -0
  333. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/base.html +0 -0
  334. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/council/minutes.html.j2 +0 -0
  335. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/desktop.html +0 -0
  336. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/email_notification.html +0 -0
  337. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
  338. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/handoff/theme.css.j2 +0 -0
  339. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/mobile.html +0 -0
  340. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/pair.html +0 -0
  341. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/statusline.sh +0 -0
  342. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templates/tmux.conf +0 -0
  343. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/templating.py +0 -0
  344. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/__init__.py +0 -0
  345. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/audio.py +0 -0
  346. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/base.py +0 -0
  347. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/engines/__init__.py +0 -0
  348. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/engines/chatterbox.py +0 -0
  349. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/engines/kokoro.py +0 -0
  350. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/engines/zonos.py +0 -0
  351. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/kokoro_server.py +0 -0
  352. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/local.py +0 -0
  353. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts/registry.py +0 -0
  354. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts_cli.py +0 -0
  355. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tts_server.py +0 -0
  356. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tunnels.py +0 -0
  357. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/tunnels_cli.py +0 -0
  358. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/usage_limit.py +0 -0
  359. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/__init__.py +0 -0
  360. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/chunker.py +0 -0
  361. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/event_log.py +0 -0
  362. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/file_io.py +0 -0
  363. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/paths.py +0 -0
  364. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/speech.py +0 -0
  365. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/utils/subprocess.py +0 -0
  366. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/validation.py +0 -0
  367. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/voice_status.py +0 -0
  368. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/wait_cli.py +0 -0
  369. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/wiki.py +0 -0
  370. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/wiki_audit.py +0 -0
  371. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/wiki_cli.py +0 -0
  372. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/worktree.py +0 -0
  373. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/worktree_cli.py +0 -0
  374. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/agentwire/worktree_registry.py +0 -0
  375. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/cases/bypass.yaml +0 -0
  376. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/cases/control_plane.yaml +0 -0
  377. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/cases/path_spelling.yaml +0 -0
  378. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/golden/harvested.json +0 -0
  379. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/corpus/schema.json +0 -0
  380. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/decisions/obsidian-second-brain.md +0 -0
  381. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/design/session-card-fields.md +0 -0
  382. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/design/session-card-recommendation.md +0 -0
  383. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/logo.png +0 -0
  384. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/INDEX.md +0 -0
  385. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/architecture.md +0 -0
  386. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/auth-expired.md +0 -0
  387. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/briefing-mode.md +0 -0
  388. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/communication/channels.md +0 -0
  389. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/communication/hammerspoon.md +0 -0
  390. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/communication/handoff.md +0 -0
  391. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/concepts.md +0 -0
  392. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/council.md +0 -0
  393. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/deployment/remote-access.md +0 -0
  394. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/deployment/remote-machines.md +0 -0
  395. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/glossary.md +0 -0
  396. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
  397. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/damage-control.md +0 -0
  398. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/parallel-refactor.md +0 -0
  399. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/portal.md +0 -0
  400. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/session-topology.md +0 -0
  401. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/shell-escaping.md +0 -0
  402. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/troubleshooting.md +0 -0
  403. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/upgrade-test.md +0 -0
  404. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/internals/window-collage.md +0 -0
  405. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/quickstart.md +0 -0
  406. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/research/briefing-mode-feasibility.md +0 -0
  407. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/research/orchestration-transport-alternatives.md +0 -0
  408. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/research/orchestrator-comparison.md +0 -0
  409. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
  410. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/security/damage-control-hardening.md +0 -0
  411. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/security/pip-audit.md +0 -0
  412. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/security/remote-access-hardening.md +0 -0
  413. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/security/sandbox-spike.md +0 -0
  414. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/security/secrets.md +0 -0
  415. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/services.md +0 -0
  416. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
  417. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/conversation-identity.md +0 -0
  418. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/fan-out-cohorts.md +0 -0
  419. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/fleet.md +0 -0
  420. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/heal-line-count-cliff.md +0 -0
  421. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/helper-sessions.md +0 -0
  422. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/messaging.md +0 -0
  423. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/prompt-routing.md +0 -0
  424. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/window-sizing.md +0 -0
  425. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/sessions/worktree-sessions.md +0 -0
  426. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/usage-limit-recovery.md +0 -0
  427. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/voice/shim-contract.md +0 -0
  428. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/voice/stt-cloud.md +0 -0
  429. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/voice/stt-self-hosted.md +0 -0
  430. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/docs/wiki/voice/tts-self-hosted.md +0 -0
  431. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/conftest.py +0 -0
  432. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/corpus_runner.py +0 -0
  433. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/e2e/test_portal_ui.py +0 -0
  434. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/audio_unlock_harness.mjs +0 -0
  435. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_30_shell.txt +0 -0
  436. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_agent.txt +0 -0
  437. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_done.txt +0 -0
  438. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_interrupted.txt +0 -0
  439. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_monitor.txt +0 -0
  440. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_quoted_footer.txt +0 -0
  441. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_second_notice.txt +0 -0
  442. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_shell.txt +0 -0
  443. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/pane_80_shell_and_monitor.txt +0 -0
  444. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/transcript_bash_done.jsonl +0 -0
  445. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/transcript_bash_pending.jsonl +0 -0
  446. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/transcript_monitor_done.jsonl +0 -0
  447. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/background_tasks/transcript_monitor_events.jsonl +0 -0
  448. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/dc_msg_body_quoting_carriers.txt +0 -0
  449. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/hotkeys_harness.mjs +0 -0
  450. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/sample_agentwire.yml +0 -0
  451. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/sample_config.yaml +0 -0
  452. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/sample_scheduler.yaml +0 -0
  453. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/session_hud_detent_harness.mjs +0 -0
  454. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/taskbar_persist_harness.mjs +0 -0
  455. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/topology_expand_harness.mjs +0 -0
  456. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/fixtures/upgrade/gws.yaml +0 -0
  457. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/home_guard.py +0 -0
  458. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_council_portal.py +0 -0
  459. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_scheduler_board.py +0 -0
  460. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_send_verified_tmux.py +0 -0
  461. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_server_websockets.py +0 -0
  462. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_tmux_name_rewrite.py +0 -0
  463. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_upgrade_from_release.py +0 -0
  464. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/integration/test_worktree_cmd.py +0 -0
  465. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_agentwire_rules_layer.py +0 -0
  466. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_announcements.py +0 -0
  467. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_audio_unlock_js.py +0 -0
  468. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_audit_attribution.py +0 -0
  469. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_audit_outcomes.py +0 -0
  470. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_auth_expired.py +0 -0
  471. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_auth_expired_dispatch.py +0 -0
  472. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_background_tasks.py +0 -0
  473. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_background_tasks_review.py +0 -0
  474. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_beta_flag.py +0 -0
  475. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_block_rows_carry_an_id.py +0 -0
  476. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_brace_expansion_zero_access.py +0 -0
  477. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_breakglass.py +0 -0
  478. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_buddy_removal_keeps.py +0 -0
  479. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_build_agent_command.py +0 -0
  480. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_channels.py +0 -0
  481. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_chrome_tabs.py +0 -0
  482. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_claude_settings.py +0 -0
  483. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_cli_commands.py +0 -0
  484. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_cli_output.py +0 -0
  485. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_cli_smoke.py +0 -0
  486. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_cli_stderr_clean.py +0 -0
  487. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_cohort.py +0 -0
  488. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_config.py +0 -0
  489. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_config_cli.py +0 -0
  490. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_control_plane_protection.py +0 -0
  491. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_conversation_change.py +0 -0
  492. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_corpus.py +0 -0
  493. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_council_cli.py +0 -0
  494. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_council_inbox.py +0 -0
  495. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_council_minutes.py +0 -0
  496. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_council_state.py +0 -0
  497. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_council_view.py +0 -0
  498. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_damage_control_bypass.py +0 -0
  499. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_damage_control_delete_recursive.py +0 -0
  500. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_damage_control_hooks.py +0 -0
  501. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_damage_control_pin.py +0 -0
  502. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_dangling_worktrees.py +0 -0
  503. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_dc_install.py +0 -0
  504. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_dc_policy_packs.py +0 -0
  505. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_dc_profile_isolation.py +0 -0
  506. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_devices.py +0 -0
  507. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_diff_cli.py +0 -0
  508. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_doctor_orphaned_history.py +0 -0
  509. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_doctor_scheduler_staleness.py +0 -0
  510. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_doctor_secrets_perms.py +0 -0
  511. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_doctor_task_migration.py +0 -0
  512. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_doctor_voice.py +0 -0
  513. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_ensure_shared_dir.py +0 -0
  514. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_ensure_verified_prompt.py +0 -0
  515. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_env_loader.py +0 -0
  516. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_escape_ask_routing.py +0 -0
  517. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_event_log.py +0 -0
  518. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_extension_points.py +0 -0
  519. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_fleet.py +0 -0
  520. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_golden_snapshot.py +0 -0
  521. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_guarded_launch_command.py +0 -0
  522. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_handoff_git_state.py +0 -0
  523. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_handoff_instructions.py +0 -0
  524. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_handoff_parser.py +0 -0
  525. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_handoff_renderer.py +0 -0
  526. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_helper_session.py +0 -0
  527. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_heredoc_marker_liveness.py +0 -0
  528. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_history.py +0 -0
  529. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_history_migrate.py +0 -0
  530. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_history_migrate_cli.py +0 -0
  531. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_history_resume_name.py +0 -0
  532. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hook_fail_closed.py +0 -0
  533. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hook_fail_closed_matrix.py +0 -0
  534. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hook_link_guard.py +0 -0
  535. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hook_python_floor.py +0 -0
  536. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hook_subprocess.py +0 -0
  537. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hooks_install.py +0 -0
  538. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_hotkeys_js.py +0 -0
  539. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_idle_handler.py +0 -0
  540. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_idle_nag.py +0 -0
  541. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_inbox.py +0 -0
  542. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_init_command.py +0 -0
  543. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_install_parity.py +0 -0
  544. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_launch_line_reentry.py +0 -0
  545. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_launch_via_env.py +0 -0
  546. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_limits_tick_isolation.py +0 -0
  547. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_live_target_1261.py +0 -0
  548. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_locking.py +0 -0
  549. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_mcp_nonblocking.py +0 -0
  550. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_mcp_server.py +0 -0
  551. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_mcp_tool_policy.py +0 -0
  552. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_mcp_tools_args.py +0 -0
  553. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_msg_cli.py +0 -0
  554. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_notify_cli.py +0 -0
  555. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_onboarding_reinit.py +0 -0
  556. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_owner_only_writes.py +0 -0
  557. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_palette_cli.py +0 -0
  558. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_path_case_folding.py +0 -0
  559. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_path_spelling.py +0 -0
  560. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_payload_position.py +0 -0
  561. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_pending_message_visibility.py +0 -0
  562. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_playback_lane.py +0 -0
  563. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_portal_api.py +0 -0
  564. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_portal_pair_url.py +0 -0
  565. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_posture_default.py +0 -0
  566. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_project_config.py +0 -0
  567. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_projects_registry.py +0 -0
  568. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_prompt_router.py +0 -0
  569. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_prompt_router_dedup.py +0 -0
  570. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_prompt_router_resume.py +0 -0
  571. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_prose_operands.py +0 -0
  572. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_push.py +0 -0
  573. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rebuild_guard.py +0 -0
  574. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rebuild_uv_lock.py +0 -0
  575. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_remote_session_record.py +0 -0
  576. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_repo_cli.py +0 -0
  577. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_report_back_path_1259.py +0 -0
  578. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_restart_cli.py +0 -0
  579. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rich_text_js.py +0 -0
  580. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rm_recoverable.py +0 -0
  581. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_role_prompt_retention.py +0 -0
  582. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_role_prompt_sweep_wiring.py +0 -0
  583. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_roles.py +0 -0
  584. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_routes_snapshot.py +0 -0
  585. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rule_files_load.py +0 -0
  586. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rule_ids_pinned.py +0 -0
  587. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_rules_json_in_sync.py +0 -0
  588. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safe_cwd.py +0 -0
  589. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_deployment.py +0 -0
  590. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_ext.py +0 -0
  591. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_groups.py +0 -0
  592. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_install.py +0 -0
  593. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_migrate.py +0 -0
  594. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_safety_notify.py +0 -0
  595. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_sandbox.py +0 -0
  596. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_say_lane.py +0 -0
  597. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_scan_budget.py +0 -0
  598. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_scheduler.py +0 -0
  599. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_scheduler_liveness.py +0 -0
  600. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_scheduler_zombie.py +0 -0
  601. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_scratchpad.py +0 -0
  602. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_security.py +0 -0
  603. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_sed_script_is_data.py +0 -0
  604. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_sent_ledger.py +0 -0
  605. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_server_async.py +0 -0
  606. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_services.py +0 -0
  607. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_services_command.py +0 -0
  608. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_context.py +0 -0
  609. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_created_by_env.py +0 -0
  610. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_hud_detent_js.py +0 -0
  611. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_metadata_ssot.py +0 -0
  612. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_metadata_write.py +0 -0
  613. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_ready.py +0 -0
  614. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_session_state.py +0 -0
  615. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_shared_dir_guard.py +0 -0
  616. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_shim_selfheal.py +0 -0
  617. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_skill_install.py +0 -0
  618. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_speech_tags.py +0 -0
  619. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_ssh.py +0 -0
  620. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_stt_backend.py +0 -0
  621. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_stt_cloud.py +0 -0
  622. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_stt_engine.py +0 -0
  623. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_task_cli.py +0 -0
  624. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_task_max_duration.py +0 -0
  625. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_taskbar_persist_js.py +0 -0
  626. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tasks.py +0 -0
  627. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tasks_cli.py +0 -0
  628. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_templating.py +0 -0
  629. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_terminal_resize.py +0 -0
  630. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tmux_session_cwd.py +0 -0
  631. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_topology_expand_js.py +0 -0
  632. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tts_engine_resolution.py +0 -0
  633. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tts_local.py +0 -0
  634. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_tunnels_probe.py +0 -0
  635. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_unattended_allow.py +0 -0
  636. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_unattended_env_isolation.py +0 -0
  637. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_unattended_scoped_allow.py +0 -0
  638. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_usage_limit.py +0 -0
  639. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_voice_assistant_removed.py +0 -0
  640. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_voice_off_and_shim_bind.py +0 -0
  641. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_voice_status.py +0 -0
  642. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_watchdog_stages.py +0 -0
  643. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_wiki.py +0 -0
  644. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_wiki_audit.py +0 -0
  645. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree.py +0 -0
  646. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree_branch_cleanup.py +0 -0
  647. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree_dot_project.py +0 -0
  648. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree_git_truth.py +0 -0
  649. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree_layout.py +0 -0
  650. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_worktree_registry.py +0 -0
  651. {agentwire_dev-1.81.0 → agentwire_dev-1.82.0}/tests/unit/test_zero_access_member_access.py +0 -0
  652. {agentwire_dev-1.81.0 → agentwire_dev-1.82.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.81.0
3
+ Version: 1.82.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.5,>=0.4.0
231
+ Requires-Dist: damage-control-dev<0.6,>=0.5.1
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.4.0,<0.5`); 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.5.1,<0.6`); 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.81.0"
3
+ __version__ = "1.82.0"
@@ -77,6 +77,7 @@
77
77
  ],
78
78
  "git.yaml": [
79
79
  "2343436a92f2ba1c5eac88bebba6e5497154952f8177b217247639503aec3e32",
80
+ "4f1ee50143f7502970f779eec5498d57dfa0cb507c4fc9c871f9ea59782f7101",
80
81
  "5323b8900cf51002f5a9ee6f96113982434d338fa3d5084ca0926601dbbc9575",
81
82
  "b3b316534e0445717a44c0fe89e65b1cc0057f0102f194805daed35b45334e04",
82
83
  "c0681690aacd0f62f50c1bd439954a1b30ad5baf726d8c826f0e31eed0424263",
@@ -191,11 +191,11 @@
191
191
  context:
192
192
  cwd: /golden/elsewhere
193
193
  expect:
194
- decision: allow
194
+ decision: ask
195
195
  protected: false
196
196
  class: relative-path-operand
197
197
  tags:
198
- - stays-allowed
198
+ - settings-write-ask
199
199
  source: tests/unit/test_relative_path_operands.py::CASES
200
200
  - id: relative-path-operand-018
201
201
  tool: Bash
@@ -227,11 +227,11 @@
227
227
  context:
228
228
  cwd: /golden/elsewhere
229
229
  expect:
230
- decision: allow
230
+ decision: ask
231
231
  protected: false
232
232
  class: relative-path-operand
233
233
  tags:
234
- - stays-allowed
234
+ - settings-write-ask
235
235
  source: tests/unit/test_relative_path_operands.py::CASES
236
236
  - id: relative-path-operand-021
237
237
  tool: Bash
@@ -239,11 +239,11 @@
239
239
  context:
240
240
  cwd: /golden/home
241
241
  expect:
242
- decision: allow
242
+ decision: ask
243
243
  protected: false
244
244
  class: relative-path-operand
245
245
  tags:
246
- - stays-allowed
246
+ - settings-write-ask
247
247
  source: tests/unit/test_relative_path_operands.py::CASES
248
248
  - id: relative-path-operand-022
249
249
  tool: Bash
@@ -43,6 +43,10 @@
43
43
  "{\"anchored\": true, \"ask\": true, \"id\": \"agentwire.tmux-kill-session-a-kills-all-except-current\", \"pattern\": \"\\\\btmux\\\\s+kill-session\\\\s+.*-a\\\\b\"}",
44
44
  "{\"anchored\": true, \"ask\": true, \"id\": \"container.docker-push\", \"pattern\": \"\\\\bdocker\\\\s+(compose\\\\s+)?push\\\\b\"}",
45
45
  "{\"anchored\": true, \"ask\": true, \"id\": \"container.kubectl-delete\", \"pattern\": \"\\\\bkubectl\\\\s+delete\\\\b\"}",
46
+ "{\"anchored\": true, \"ask\": true, \"id\": \"control-plane.claude-nested-config-dir\", \"pattern\": \"\\\\bclaude\\\\s+--dc:config-dir\\\\b\"}",
47
+ "{\"anchored\": true, \"ask\": true, \"id\": \"control-plane.claude-nested-partial-sources\", \"pattern\": \"\\\\bclaude\\\\s+--dc:partial-sources\\\\b\"}",
48
+ "{\"anchored\": true, \"ask\": true, \"id\": \"control-plane.claude-nested-plugin-dir\", \"pattern\": \"\\\\bclaude\\\\s+--dc:plugin-dir\\\\b\"}",
49
+ "{\"anchored\": true, \"ask\": true, \"id\": \"control-plane.claude-nested-settings-file\", \"pattern\": \"\\\\bclaude\\\\s+--dc:settings-file\\\\b\"}",
46
50
  "{\"anchored\": true, \"ask\": true, \"id\": \"core.crontab-install\", \"pattern\": \"(?<![\\\\w.-])(?<!\\\\./)crontab(?=[\\\\s;&|)`]|$)(?![^;&|]*\\\\s(?:-[A-Za-z]*l[A-Za-z]*|--list|-V|--version)(?=[\\\\s;&|)`]|$))\"}",
47
51
  "{\"anchored\": true, \"ask\": true, \"id\": \"core.kill-sigkill\", \"pattern\": \"\\\\bkill\\\\s+(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?(?:-(?:9|KILL|SIGKILL)|-s\\\\s*(?:9|KILL|SIGKILL)|-n\\\\s+9|--signal[=\\\\s]\\\\s*(?:9|KILL|SIGKILL))(?=[\\\\s;&|)`]|$)\", \"pattern_src\": \"\\\\bkill\\\\s+{ARGS}(?:-(?:9|KILL|SIGKILL)|-s\\\\s*(?:9|KILL|SIGKILL)|-n\\\\s+9|--signal[=\\\\s]\\\\s*(?:9|KILL|SIGKILL))(?=[\\\\s;&|)`]|$)\"}",
48
52
  "{\"anchored\": true, \"ask\": true, \"id\": \"core.rsync-delete\", \"pattern\": \"\\\\brsync\\\\s+(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?--(?:del|delete[a-z-]*|remove-(?:source|sent)-files)(?=[\\\\s=;&|)`]|$)\", \"pattern_src\": \"\\\\brsync\\\\s+{ARGS}--(?:del|delete[a-z-]*|remove-(?:source|sent)-files)(?=[\\\\s=;&|)`]|$)\"}",
@@ -82,12 +86,16 @@
82
86
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.config-set-redirect-key\", \"pattern\": \"\\\\bgit\\\\s+config\\\\b(?![^;&|]*\\\\s(?:--(?:get|unset|list|edit)|-l\\\\b|-e\\\\b))[^;&|]*?\\\\s(?:core\\\\.(?:worktree|hookspath)|include\\\\.path|includeif\\\\.\\\\S+\\\\.path)\\\\s+\\\\S\"}",
83
87
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.deletes-remote-branch\", \"pattern\": \"\\\\bgit\\\\s+push\\\\s+(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?--delete\\\\b\", \"pattern_src\": \"\\\\bgit\\\\s+push\\\\s+{ARGS}--delete\\\\b\"}",
84
88
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.deletes-remote-branch-old-syntax\", \"pattern\": \"\\\\bgit\\\\s+push\\\\s+\\\\S+\\\\s+:\\\\S+\"}",
89
+ "{\"anchored\": true, \"ask\": true, \"id\": \"git.discard-assembled-at-run-time\", \"pattern\": \"\\\\bgit\\\\s+(?:reset|clean|switch|restore|checkout|worktree\\\\s+remove)\\\\s+--assembled-at-run-time\\\\b\"}",
85
90
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.discards-all-uncommitted-changes\", \"pattern\": \"\\\\bgit\\\\s+checkout\\\\s+--\\\\s*\\\\.\"}",
86
91
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.discards-all-uncommitted-changes-2\", \"pattern\": \"\\\\bgit\\\\s+restore\\\\s+\\\\.\"}",
87
92
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.force-deletes-branch-even-if-unmerged\", \"pattern\": \"\\\\bgit\\\\s+branch\\\\s+(?:(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?-(?!-)[a-z]*(?-i:D)[a-z]*(?=[\\\\s;&|)`]|$)|(?=(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*d[a-z]*|--delete)(?=[\\\\s;&|)`]|$))(?=(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*f[a-z]*|--force)(?=[\\\\s;&|)`]|$)))\", \"pattern_src\": \"\\\\bgit\\\\s+branch\\\\s+(?:{ARGS}-(?!-)[a-z]*(?-i:D)[a-z]*(?=[\\\\s;&|)`]|$)|(?=(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*d[a-z]*|--delete)(?=[\\\\s;&|)`]|$))(?=(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*f[a-z]*|--force)(?=[\\\\s;&|)`]|$)))\"}",
88
93
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.permanently-deletes-a-stash\", \"pattern\": \"\\\\bgit\\\\s+stash\\\\s+drop\\\\b\"}",
89
94
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.push\", \"pattern\": \"\\\\bgit\\\\s+push(?![\\\\w-])\"}",
95
+ "{\"anchored\": true, \"ask\": true, \"id\": \"git.restore-worktree-whole-tree\", \"pattern\": \"\\\\bgit\\\\s+restore\\\\s+--worktree\\\\s+\\\\.(?=[\\\\s;&|)`]|$)\"}",
90
96
  "{\"anchored\": true, \"ask\": true, \"id\": \"git.rm-tracked-files\", \"pattern\": \"\\\\bgit\\\\s+rm\\\\b(?!.*--cached)\"}",
97
+ "{\"anchored\": true, \"ask\": true, \"id\": \"git.switch-discard-changes\", \"pattern\": \"\\\\bgit\\\\s+switch\\\\s+--discard-changes\\\\b\"}",
98
+ "{\"anchored\": true, \"ask\": true, \"id\": \"git.worktree-remove-force\", \"pattern\": \"\\\\bgit\\\\s+worktree\\\\s+remove\\\\s+--force\\\\b\"}",
91
99
  "{\"anchored\": true, \"ask\": true, \"id\": \"outbound.agentwire-email\", \"pattern\": \"\\\\bagentwire\\\\s+email\\\\b\"}",
92
100
  "{\"anchored\": true, \"ask\": true, \"id\": \"outbound.agentwire-quo\", \"pattern\": \"\\\\bagentwire\\\\s+quo\\\\b\"}",
93
101
  "{\"anchored\": true, \"ask\": true, \"id\": \"outbound.aws-ses\", \"pattern\": \"\\\\baws\\\\s+ses(v2)?\\\\s+send-email\\\\b\"}",
@@ -228,6 +236,10 @@
228
236
  "{\"anchored\": true, \"id\": \"containers.kubectl-delete-across-all-namespaces\", \"pattern\": \"\\\\bkubectl\\\\s+delete\\\\s+.*--all\\\\s+--all-namespaces\"}",
229
237
  "{\"anchored\": true, \"id\": \"containers.kubectl-delete-all-all\", \"pattern\": \"\\\\bkubectl\\\\s+delete\\\\s+(?=(?:[^;&|]*\\\\s)?--all(?=[\\\\s;&|)`]|$))(?=(?:[^;&|]*\\\\s)?all(?=[\\\\s;&|)`]|$))\", \"pattern_src\": \"\\\\bkubectl\\\\s+delete\\\\s+(?=(?:[^;&|]*\\\\s)?--all(?=[\\\\s;&|)`]|$))(?=(?:[^;&|]*\\\\s)?all(?=[\\\\s;&|)`]|$))\"}",
230
238
  "{\"anchored\": true, \"id\": \"containers.kubectl-delete-namespace\", \"pattern\": \"\\\\bkubectl\\\\s+delete\\\\s+namespace\\\\b\"}",
239
+ "{\"anchored\": true, \"id\": \"control-plane.claude-nested-bare\", \"pattern\": \"\\\\bclaude\\\\s+--dc:bare\\\\b\"}",
240
+ "{\"anchored\": true, \"id\": \"control-plane.claude-nested-disable-all-hooks\", \"pattern\": \"\\\\bclaude\\\\s+--dc:disable-all-hooks\\\\b\"}",
241
+ "{\"anchored\": true, \"id\": \"control-plane.claude-nested-no-user-scope\", \"pattern\": \"\\\\bclaude\\\\s+--dc:no-user-scope\\\\b\"}",
242
+ "{\"anchored\": true, \"id\": \"control-plane.claude-nested-safe-mode\", \"pattern\": \"\\\\bclaude\\\\s+--dc:safe-mode\\\\b\"}",
231
243
  "{\"anchored\": true, \"id\": \"core.chmod-777-world-writable\", \"pattern\": \"\\\\bchmod\\\\s+(?:-[^\\\\s;&|]*\\\\s+)*(?:--\\\\s+)?0?777\\\\b\"}",
232
244
  "{\"anchored\": true, \"id\": \"core.clearing-shell-history\", \"pattern\": \"\\\\bhistory\\\\s+-c\\\\b\"}",
233
245
  "{\"anchored\": true, \"id\": \"core.dd-writing-to-device\", \"pattern\": \"\\\\bdd\\\\s+.*of=/dev/\"}",
@@ -262,7 +274,7 @@
262
274
  "{\"anchored\": true, \"id\": \"gcp.gcloud-sql-instances-delete\", \"pattern\": \"\\\\bgcloud\\\\s+sql\\\\s+instances\\\\s+delete\\\\b\"}",
263
275
  "{\"anchored\": true, \"id\": \"gcp.gcloud-storage-rm-r-recursive-delete\", \"pattern\": \"\\\\bgcloud\\\\s+storage\\\\s+rm\\\\s+.*-r\"}",
264
276
  "{\"anchored\": true, \"id\": \"git.gh-repo-delete-deletes-repository\", \"pattern\": \"\\\\bgh\\\\s+repo\\\\s+delete\\\\b\"}",
265
- "{\"anchored\": true, \"id\": \"git.git-clean-with-force-directory-flags\", \"pattern\": \"\\\\bgit\\\\s+clean\\\\s+(?!(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*n[a-z]*(?=[\\\\s;&|)`]|$)|--dry-run\\\\b))(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?(?:-(?!-)[a-z]*[fd][a-z]*|--force)(?=[\\\\s;&|)`]|$)\", \"pattern_src\": \"\\\\bgit\\\\s+clean\\\\s+(?!(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*n[a-z]*(?=[\\\\s;&|)`]|$)|--dry-run\\\\b)){ARGS}(?:-(?!-)[a-z]*[fd][a-z]*|--force)(?=[\\\\s;&|)`]|$)\"}",
277
+ "{\"anchored\": true, \"id\": \"git.git-clean-with-force-directory-flags\", \"pattern\": \"\\\\bgit\\\\s+clean\\\\s+(?!(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*n[a-z]*(?=[\\\\s;&|)`]|$)|--d[a-z-]*))(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?(?:-(?!-)[a-z]*[fd][a-z]*|--force)(?=[\\\\s;&|)`]|$)\", \"pattern_src\": \"\\\\bgit\\\\s+clean\\\\s+(?!(?:[^;&|]*\\\\s)?(?:-(?!-)[a-z]*n[a-z]*(?=[\\\\s;&|)`]|$)|--d[a-z-]*)){ARGS}(?:-(?!-)[a-z]*[fd][a-z]*|--force)(?=[\\\\s;&|)`]|$)\"}",
266
278
  "{\"anchored\": true, \"id\": \"git.git-filter-branch-rewrites-entire-history\", \"pattern\": \"\\\\bgit\\\\s+filter-branch\\\\b\"}",
267
279
  "{\"anchored\": true, \"id\": \"git.git-gc-prune-now-can-lose-dangling-commits\", \"pattern\": \"\\\\bgit\\\\s+gc\\\\s+.*--prune=now\"}",
268
280
  "{\"anchored\": true, \"id\": \"git.git-push-f-use-force-with-lease\", \"pattern\": \"\\\\bgit\\\\s+push\\\\s+(?:(?!--(?:\\\\s|$))[^\\\\s;&|]+\\\\s+)*?-(?!-)[a-z]*f[a-z]*(?=[\\\\s;&|)`]|$)\", \"pattern_src\": \"\\\\bgit\\\\s+push\\\\s+{ARGS}-(?!-)[a-z]*f[a-z]*(?=[\\\\s;&|)`]|$)\"}",
@@ -43,6 +43,14 @@
43
43
  "containers.kubectl-delete-across-all-namespaces",
44
44
  "containers.kubectl-delete-all-all",
45
45
  "containers.kubectl-delete-namespace",
46
+ "control-plane.claude-nested-bare",
47
+ "control-plane.claude-nested-config-dir",
48
+ "control-plane.claude-nested-disable-all-hooks",
49
+ "control-plane.claude-nested-no-user-scope",
50
+ "control-plane.claude-nested-partial-sources",
51
+ "control-plane.claude-nested-plugin-dir",
52
+ "control-plane.claude-nested-safe-mode",
53
+ "control-plane.claude-nested-settings-file",
46
54
  "core.chmod-777-world-writable",
47
55
  "core.clearing-shell-history",
48
56
  "core.crontab-install",
@@ -137,6 +145,7 @@
137
145
  "git.config-set-redirect-key",
138
146
  "git.deletes-remote-branch",
139
147
  "git.deletes-remote-branch-old-syntax",
148
+ "git.discard-assembled-at-run-time",
140
149
  "git.discards-all-uncommitted-changes",
141
150
  "git.discards-all-uncommitted-changes-2",
142
151
  "git.force-deletes-branch-even-if-unmerged",
@@ -151,7 +160,10 @@
151
160
  "git.git-stash-clear-deletes-all-stashes",
152
161
  "git.permanently-deletes-a-stash",
153
162
  "git.push",
163
+ "git.restore-worktree-whole-tree",
154
164
  "git.rm-tracked-files",
165
+ "git.switch-discard-changes",
166
+ "git.worktree-remove-force",
155
167
  "infrastructure.pulumi-destroy-destroys-all-resources",
156
168
  "infrastructure.sam-delete-deletes-sam-application",
157
169
  "infrastructure.serverless-remove-removes-stack",
@@ -135,7 +135,7 @@
135
135
  "audit": 8,
136
136
  "engine": 1830,
137
137
  "engine_by_platform": 8,
138
- "hooks": 1019,
138
+ "hooks": 1025,
139
139
  "hooks_by_platform": 6
140
140
  },
141
141
  "engine": {
@@ -3356,10 +3356,10 @@
3356
3356
  "unverifiable": false
3357
3357
  },
3358
3358
  "[\"Bash\", \"cd /golden/elsewhere && echo x > .claude/settings.json\", \"/golden/home\", \"default\", \"/golden/home\"]": {
3359
- "decision": "allow",
3359
+ "decision": "ask",
3360
3360
  "protected": false,
3361
- "rule_id": null,
3362
- "unverifiable": false
3361
+ "rule_id": "core.settings-write",
3362
+ "unverifiable": true
3363
3363
  },
3364
3364
  "[\"Bash\", \"cd /golden/elsewhere && echo x > .claude/settings.json\", \"/golden/home\", \"kill-switch-off\", \"/golden/home\"]": {
3365
3365
  "decision": "allow",
@@ -6368,10 +6368,10 @@
6368
6368
  "unverifiable": false
6369
6369
  },
6370
6370
  "[\"Bash\", \"echo x > .claude/settings.json # ask: because\", \"/golden/home\", \"default\", \"/golden/elsewhere\"]": {
6371
- "decision": "allow",
6371
+ "decision": "ask",
6372
6372
  "protected": false,
6373
- "rule_id": null,
6374
- "unverifiable": false
6373
+ "rule_id": "core.settings-write",
6374
+ "unverifiable": true
6375
6375
  },
6376
6376
  "[\"Bash\", \"echo x > .claude/settings.json # ask: because\", \"/golden/home\", \"default\", \"/golden/home\"]": {
6377
6377
  "decision": "block",
@@ -6392,10 +6392,10 @@
6392
6392
  "unverifiable": false
6393
6393
  },
6394
6394
  "[\"Bash\", \"echo x > .claude/settings.json\", \"/golden/home\", \"default\", \"/golden/elsewhere\"]": {
6395
- "decision": "allow",
6395
+ "decision": "ask",
6396
6396
  "protected": false,
6397
- "rule_id": null,
6398
- "unverifiable": false
6397
+ "rule_id": "core.settings-write",
6398
+ "unverifiable": true
6399
6399
  },
6400
6400
  "[\"Bash\", \"echo x > .claude/settings.json\", \"/golden/home\", \"default\", \"/golden/home\"]": {
6401
6401
  "decision": "block",
@@ -12723,12 +12723,24 @@
12723
12723
  "exit": 2,
12724
12724
  "rule_id": "core.zero-access-path"
12725
12725
  },
12726
+ "[\"Bash\", \"cd /golden/elsewhere && echo x > .claude/settings.json\", \"/golden/home\", \"bypass\", \"/golden/home\"]": {
12727
+ "audit": "asked",
12728
+ "decision": "ask",
12729
+ "exit": 0,
12730
+ "rule_id": null
12731
+ },
12726
12732
  "[\"Bash\", \"cd /golden/elsewhere && echo x > .claude/settings.json\", \"/golden/home\", \"interactive\", \"/golden/home\"]": {
12727
- "audit": "allowed",
12728
- "decision": "allow",
12733
+ "audit": "asked",
12734
+ "decision": "ask",
12729
12735
  "exit": 0,
12730
12736
  "rule_id": null
12731
12737
  },
12738
+ "[\"Bash\", \"cd /golden/elsewhere && echo x > .claude/settings.json\", \"/golden/home\", \"unattended\", \"/golden/home\"]": {
12739
+ "audit": "blocked",
12740
+ "decision": "block",
12741
+ "exit": 2,
12742
+ "rule_id": "core.settings-write"
12743
+ },
12732
12744
  "[\"Bash\", \"cd /tmp && echo hi\", \"/golden/home\", \"interactive\"]": {
12733
12745
  "audit": "allowed",
12734
12746
  "decision": "allow",
@@ -14265,9 +14277,15 @@
14265
14277
  "exit": 2,
14266
14278
  "rule_id": "core.protected-control-plane"
14267
14279
  },
14280
+ "[\"Bash\", \"echo x > .claude/settings.json # ask: because\", \"/golden/home\", \"bypass\", \"/golden/elsewhere\"]": {
14281
+ "audit": "asked",
14282
+ "decision": "ask",
14283
+ "exit": 0,
14284
+ "rule_id": null
14285
+ },
14268
14286
  "[\"Bash\", \"echo x > .claude/settings.json # ask: because\", \"/golden/home\", \"interactive\", \"/golden/elsewhere\"]": {
14269
- "audit": "allowed",
14270
- "decision": "allow",
14287
+ "audit": "asked",
14288
+ "decision": "ask",
14271
14289
  "exit": 0,
14272
14290
  "rule_id": null
14273
14291
  },
@@ -14277,9 +14295,21 @@
14277
14295
  "exit": 2,
14278
14296
  "rule_id": "core.protected-control-plane"
14279
14297
  },
14298
+ "[\"Bash\", \"echo x > .claude/settings.json # ask: because\", \"/golden/home\", \"unattended\", \"/golden/elsewhere\"]": {
14299
+ "audit": "blocked",
14300
+ "decision": "block",
14301
+ "exit": 2,
14302
+ "rule_id": "core.settings-write"
14303
+ },
14304
+ "[\"Bash\", \"echo x > .claude/settings.json\", \"/golden/home\", \"bypass\", \"/golden/elsewhere\"]": {
14305
+ "audit": "asked",
14306
+ "decision": "ask",
14307
+ "exit": 0,
14308
+ "rule_id": null
14309
+ },
14280
14310
  "[\"Bash\", \"echo x > .claude/settings.json\", \"/golden/home\", \"interactive\", \"/golden/elsewhere\"]": {
14281
- "audit": "allowed",
14282
- "decision": "allow",
14311
+ "audit": "asked",
14312
+ "decision": "ask",
14283
14313
  "exit": 0,
14284
14314
  "rule_id": null
14285
14315
  },
@@ -14289,6 +14319,12 @@
14289
14319
  "exit": 2,
14290
14320
  "rule_id": "core.protected-control-plane"
14291
14321
  },
14322
+ "[\"Bash\", \"echo x > .claude/settings.json\", \"/golden/home\", \"unattended\", \"/golden/elsewhere\"]": {
14323
+ "audit": "blocked",
14324
+ "decision": "block",
14325
+ "exit": 2,
14326
+ "rule_id": "core.settings-write"
14327
+ },
14292
14328
  "[\"Bash\", \"echo x > .config/gh/hosts.yml\", \"/golden/home\", \"interactive\", \"/golden/home\"]": {
14293
14329
  "audit": "blocked",
14294
14330
  "decision": "block",
@@ -29,7 +29,7 @@ dependencies = [
29
29
  # PyPI. Engine changes land there, release there, then raise this floor.
30
30
  # tests/unit/test_damage_control_pin.py checks the range and the installed engine.
31
31
  # Hooks run `python -I -m damage_control.hook`.
32
- "damage-control-dev>=0.4.0,<0.5",
32
+ "damage-control-dev>=0.5.1,<0.6",
33
33
  "aiohttp>=3.13.4", # >=3.13.4 clears CVE-2026-34515 + CVE-2026-34513 (portal-facing)
34
34
  "aiohttp-jinja2>=1.6",
35
35
  "jinja2>=3.1.0",
@@ -41,6 +41,7 @@ def make_engine(finding=None, grants=(), profile=GENERIC, **overrides):
41
41
  check_read_path=lambda path, config: (False, ""),
42
42
  check_path=lambda path, config: (False, ""),
43
43
  check_protected_path=lambda path, allowed: (False, ""),
44
+ _path_forms=lambda path: [path],
44
45
  check_mcp_tool=lambda name, config: {"decision": "allow", "reason": "", "id": None, "mutates": None},
45
46
  ScanBudgetExceeded=type("ScanBudgetExceeded", (BaseException,), {}),
46
47
  )
@@ -10,7 +10,7 @@ def test_the_bash_hook_judges_a_powershell_call_exactly_like_a_bash_call(run_hoo
10
10
 
11
11
  got = {
12
12
  (tool, cmd): verdict(tool, cmd)
13
- for tool in ("Bash", "PowerShell")
13
+ for tool in ("Bash", "PowerShell", "Monitor")
14
14
  for cmd in ("rm -rf /agentwire-selftest", "echo hi")
15
15
  }
16
16
  assert got == {
@@ -18,9 +18,11 @@ def test_the_bash_hook_judges_a_powershell_call_exactly_like_a_bash_call(run_hoo
18
18
  ("PowerShell", "rm -rf /agentwire-selftest"): 2,
19
19
  ("Bash", "echo hi"): 0,
20
20
  ("PowerShell", "echo hi"): 0,
21
+ ("Monitor", "rm -rf /agentwire-selftest"): 2,
22
+ ("Monitor", "echo hi"): 0,
21
23
  }
22
24
  # a tool the hook does not gate is still ignored
23
- assert verdict("Monitor", "rm -rf /agentwire-selftest") == 0
25
+ assert verdict("NotATool", "rm -rf /agentwire-selftest") == 0
24
26
 
25
27
 
26
28
  def test_the_outcome_logger_matches_the_powershell_tool_too():
@@ -49,10 +49,10 @@ CASES = [
49
49
  (FAKE_HOME, "echo x >> .bash_history", "block"),
50
50
  (ELSEWHERE, "cd ~ && cat .ssh/id_rsa", "block"),
51
51
  # what a relative name means depends on where it runs
52
- (ELSEWHERE, "echo x > .claude/settings.json", "allow"),
52
+ (ELSEWHERE, "echo x > .claude/settings.json", "ask"),
53
53
  (ELSEWHERE, "cat .ssh/id_rsa", "allow"),
54
54
  (ELSEWHERE, "rm .claude/notes.txt", "allow"),
55
- (FAKE_HOME, "cd " + ELSEWHERE + " && echo x > .claude/settings.json", "allow"),
55
+ (FAKE_HOME, "cd " + ELSEWHERE + " && echo x > .claude/settings.json", "ask"),
56
56
  ]
57
57
 
58
58
 
@@ -4,6 +4,7 @@ The hooks read ``packs:`` / ``disabled_groups:`` from the policy file on every c
4
4
  enabling or disabling takes effect on the next tool call and touches no file on disk.
5
5
  """
6
6
 
7
+ import hashlib
7
8
  import shutil
8
9
  from types import SimpleNamespace
9
10
 
@@ -46,15 +47,22 @@ def decisions():
46
47
 
47
48
 
48
49
  def install_old_layout():
49
- """What every pre-package machine looks like: ALL bundled files copied into the overlay, no `packs:` key."""
50
+ """What every pre-package machine looks like: every bundled file copied into the overlay, no `packs:` key.
51
+
52
+ Only content a pre-package release could have shipped (a hash in the frozen baselines): the engine
53
+ keeps adding rule content (0.5.0's nested-claude rules), and no old machine holds a copy of that.
54
+ """
55
+ shipped = safety_migrate.load_baselines()
50
56
  sources = {
51
57
  safety_commands.RULES_DIR: [p for d in engine.bundled_rule_sources() for p in d.glob("*.yaml")],
52
58
  safety_commands.TOOLDEFS_DIR: list(engine.bundled_tooldefs_dir().glob("*.yaml")),
53
59
  }
54
60
  for target, files in sources.items():
55
61
  target.mkdir(parents=True, exist_ok=True)
62
+ section = "rules" if target == safety_commands.RULES_DIR else "tooldefs"
56
63
  for path in files:
57
- shutil.copy(path, target / path.name)
64
+ if hashlib.sha256(path.read_bytes()).hexdigest() in shipped[section].get(path.name, []):
65
+ shutil.copy(path, target / path.name)
58
66
  safety_commands.DAMAGECONTROL_FILE.write_text("enabled: true\n")
59
67
 
60
68
 
File without changes
File without changes
File without changes