agentwire-dev 1.77.3__tar.gz → 1.77.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/PKG-INFO +2 -2
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/RELEASING.md +1 -1
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/__init__.py +1 -1
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rule_baselines.json +2 -1
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/golden/effective_rules.json +0 -6
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/golden/snapshot.json +57 -45
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/pyproject.toml +1 -1
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_block_rows_carry_an_id.py +1 -1
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_sed_script_is_data.py +7 -7
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_unattended_scoped_allow.py +74 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.agentwire.yml.example +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.claude/commands/handoff.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.claude/skills/wiki/SKILL.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/FUNDING.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/workflows/pytest.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/workflows/ruff.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/workflows/security.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.github/workflows/tts-smoke.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/.gitignore +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/AGENTS.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/CODE_OF_CONDUCT.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/CONTRIBUTING.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/Dockerfile.local +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/LICENSE +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/README.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/SECURITY.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/SPONSORS.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/__main__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/agents/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/agents/base.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/agents/tmux.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/auth_expired.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/background_tasks.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/beta.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/cached_status.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels/base.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels/email.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels/push.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels/quo.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/channels_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/chrome_tabs.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/claude_settings.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/cohort.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/completion.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/config.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/config_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/core.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/inbox.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/minutes.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/council/view.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/devices.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/diff_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/doctor_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/doctor_voice.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/ensure_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/env_loader.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/fetch.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/git_state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/instructions.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/parser.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/renderer.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff/schema.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/handoff_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/history.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/history_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/history_migrate.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks/agentwire-permission.sh +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks/idle-handler.sh +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks/outcome_logger.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks/queue-processor.sh +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/hooks_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/inbox.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/limits_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/listen.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/locking.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/machine_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_channels.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_chrome.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_core.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_council.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_desktop.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_handoff.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_history.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_listen.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_lock.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_machine.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_msg.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_notify.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_pane.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_projects.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_scheduler.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_scratchpad.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_services.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_session.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_status.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_task.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_tunnels.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_voice.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_wiki.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/mcp_worktree.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/msg_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/network.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/notify_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/onboarding.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/palette_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/pane_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/pane_manager.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/playback_lane.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/portal_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/project_config.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/projects.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/prompt_router.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/prompts_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/push_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/push_store.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/repo_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/research.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/restart_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/role_prompts.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/agentwire.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/anchor.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/chatbot.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/contributor.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/correspondent.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-brain.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-conscience.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-critic.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-devils-advocate.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-gut.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-historian.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-member.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/council-orchestrator.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/init.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/notifications.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/orchestrator.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/reviewer-worktree.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/reviewer.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/shared-checkout.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/soul.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/task-runner.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/voice.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/worker-worktree.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles/worker.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/roles_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/artifacts.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/config.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/council.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/desktop.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/history.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/machines.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/notify.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/palette.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/permission.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/projects.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/push.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/safety.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/scheduler.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/scratchpad.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/sessions.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/sessions_admin.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/routes/voice.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/audit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/lint.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/provenance.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/residuals.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-control-plane.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-control-plane.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-core.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-core.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-mcp-tools.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-mcp-tools.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-outbound.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire-outbound.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/rules/agentwire.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety/suggest.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_commands.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_ext.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_migrate.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_notify.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/safety_packs_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/dispatch.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/gates.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/loop.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/models.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/report.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/schedule.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler/zombie.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scheduler_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/scratchpad.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/security.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/send_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/sent_ledger.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/services.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/session_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/session_context.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/session_ready.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/session_state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/ssh.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/announcements.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/apple-touch-icon.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/css/desktop.css +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/css/mobile.css +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/favicon-32.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/favicon-64.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/bear.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/cat.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/crown.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/custom/agentwire-portal.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/custom/agentwire-tts.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/custom/agentwire.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/deer.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/drone.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/eagle.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/fox.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/hawk.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/horse.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/lion.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/rabbit.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/robot.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/tiger.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/icons/sessions/wolf.webp +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/img/icon-192.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/img/icon-512.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/.gitkeep +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/announcement-modal.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/api.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/artifact-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/card-terminal.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/collage.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/command-palette.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/council-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/dead-key-residue.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/desktop-manager.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/desktop.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/help-modal.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/hotkeys.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/icon-manager.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/lineage.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/mobile.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/notification-prefs.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/notifications-panel.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/ptt.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/push-client.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/review-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/safety-shared.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/safety-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/scratchpad.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/service-classification.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-hud-controller.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-hud-notices.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-hud-spawn.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-hud.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-id.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/session-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/shortcuts.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/config-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/council-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/machines-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/projects-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/safety-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/services-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar/sessions-section.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/sidebar.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/spawn-ghost.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/taskbar-persist.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/terminal-font-prefs.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/terminal-pane.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/tile-manager.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/toast.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/token-modal.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/topology-render.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/utils/ansi.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/utils/rich-text.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/utils/swipe.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/audio-unlock.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/autosend-prefs.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/browser-stt.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/browser-tts.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/jargon.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/voice/prompt.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/winbox.bundle.min.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/js/workspace-window.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/manifest.webmanifest +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/service-worker.js +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/static/topology-harness.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/base.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/cloud.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/engine.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/local.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/server_backend.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/stt/stt_server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/system_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tabs_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tasks.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tasks_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/base.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/council/minutes.html.j2 +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/desktop.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/email_notification.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/handoff/theme.css.j2 +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/mobile.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/pair.html +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/statusline.sh +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templates/tmux.conf +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/templating.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/audio.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/base.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/engines/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/engines/chatterbox.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/engines/kokoro.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/engines/zonos.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/kokoro_server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/local.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts/registry.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tts_server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tunnels.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/tunnels_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/usage_limit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/__init__.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/chunker.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/event_log.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/file_io.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/paths.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/speech.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/utils/subprocess.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/validation.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/voice_status.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/wait_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/wiki.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/wiki_audit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/wiki_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/worktree.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/worktree_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/agentwire/worktree_registry.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/cases/bypass.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/cases/control_plane.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/cases/path_spelling.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/cases/relative_paths.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/golden/harvested.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/golden/rule_ids.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/corpus/schema.json +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/decisions/obsidian-second-brain.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/design/session-card-fields.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/design/session-card-recommendation.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/logo.png +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/INDEX.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/architecture.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/auth-expired.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/briefing-mode.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/communication/channels.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/communication/hammerspoon.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/communication/handoff.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/concepts.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/council.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/deployment/remote-access.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/deployment/remote-machines.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/glossary.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/damage-control.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/parallel-refactor.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/portal.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/session-topology.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/shell-escaping.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/troubleshooting.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/internals/window-collage.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/quickstart.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/research/briefing-mode-feasibility.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/research/orchestration-transport-alternatives.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/security/damage-control-hardening.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/security/pip-audit.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/security/remote-access-hardening.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/security/secrets.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/services.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/conversation-identity.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/fan-out-cohorts.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/heal-line-count-cliff.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/helper-sessions.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/messaging.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/prompt-routing.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/window-sizing.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/sessions/worktree-sessions.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/usage-limit-recovery.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/voice/shim-contract.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/voice/stt-cloud.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/voice/stt-self-hosted.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/docs/wiki/voice/tts-self-hosted.md +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/conftest.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/corpus_runner.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/e2e/test_portal_ui.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/audio_unlock_harness.mjs +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_30_shell.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_agent.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_done.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_interrupted.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_monitor.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_quoted_footer.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_second_notice.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_shell.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/pane_80_shell_and_monitor.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/transcript_bash_done.jsonl +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/transcript_bash_pending.jsonl +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/transcript_monitor_done.jsonl +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/background_tasks/transcript_monitor_events.jsonl +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/dc_msg_body_quoting_carriers.txt +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/hotkeys_harness.mjs +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/sample_agentwire.yml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/sample_config.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/sample_scheduler.yaml +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/session_hud_detent_harness.mjs +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/taskbar_persist_harness.mjs +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/fixtures/topology_expand_harness.mjs +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/home_guard.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_council_portal.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_scheduler_board.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_send_verified_tmux.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_server_websockets.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_tmux_name_rewrite.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/integration/test_worktree_cmd.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_agentwire_rules_layer.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_announcements.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_audio_unlock_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_audit_attribution.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_audit_outcomes.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_auth_expired.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_auth_expired_dispatch.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_background_tasks.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_background_tasks_review.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_beta_flag.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_brace_expansion_zero_access.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_breakglass.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_buddy_removal_keeps.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_build_agent_command.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_channels.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_chrome_tabs.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_claude_settings.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_cli_commands.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_cli_output.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_cli_smoke.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_cli_stderr_clean.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_cohort.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_config.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_config_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_control_plane_protection.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_corpus.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_council_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_council_inbox.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_council_minutes.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_council_state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_council_view.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_damage_control_bypass.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_damage_control_delete_recursive.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_damage_control_hooks.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_damage_control_pin.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_dangling_worktrees.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_dc_install.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_dc_policy_packs.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_dc_profile_isolation.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_devices.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_diff_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_doctor_orphaned_history.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_doctor_scheduler_staleness.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_doctor_secrets_perms.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_doctor_task_migration.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_doctor_voice.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_ensure_shared_dir.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_ensure_verified_prompt.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_env_loader.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_event_log.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_extension_points.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_golden_snapshot.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_guarded_launch_command.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_handoff_git_state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_handoff_instructions.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_handoff_parser.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_handoff_renderer.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_helper_session.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_heredoc_marker_liveness.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_history.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_history_migrate.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_history_migrate_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_history_resume_name.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hook_fail_closed.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hook_fail_closed_matrix.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hook_link_guard.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hook_python_floor.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hook_subprocess.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hooks_install.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_hotkeys_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_idle_handler.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_idle_nag.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_inbox.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_init_command.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_install_parity.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_launch_line_reentry.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_launch_via_env.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_limits_tick_isolation.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_live_target_1261.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_locking.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_mcp_nonblocking.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_mcp_server.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_mcp_tool_policy.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_mcp_tools_args.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_msg_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_notify_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_onboarding_reinit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_owner_only_writes.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_palette_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_path_case_folding.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_path_spelling.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_payload_position.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_pending_message_visibility.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_playback_lane.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_policy_ladder.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_portal_api.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_portal_pair_url.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_posture_default.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_powershell_matcher.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_project_config.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_projects_registry.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_prompt_router.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_prompt_router_dedup.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_prompt_router_resume.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_prose_operands.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_push.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rebuild_guard.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rebuild_uv_lock.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_relative_path_operands.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_remote_session_record.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_repo_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_report_back_path_1259.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_restart_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rich_text_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rm_recoverable.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_role_prompt_retention.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_role_prompt_sweep_wiring.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_roles.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_routes_snapshot.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rule_files_load.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rule_ids_pinned.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_rules_json_in_sync.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safe_cwd.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_deployment.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_ext.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_groups.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_install.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_migrate.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_notify.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_safety_packs.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_say_lane.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_scan_budget.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_scheduler.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_scheduler_liveness.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_scheduler_zombie.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_scratchpad.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_security.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_sent_ledger.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_server_async.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_services.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_services_command.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_context.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_created_by_env.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_hud_detent_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_metadata_ssot.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_metadata_write.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_ready.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_session_state.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_shared_dir_guard.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_shim_selfheal.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_skill_install.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_speech_tags.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_ssh.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_stt_backend.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_stt_cloud.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_stt_engine.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_task_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_task_max_duration.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_taskbar_persist_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tasks.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tasks_cli.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_templating.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_terminal_resize.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tmux_session_cwd.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_topology_expand_js.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tts_engine_resolution.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tts_local.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_tunnels_probe.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_unattended_allow.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_unattended_env_isolation.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_usage_limit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_voice_assistant_removed.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_voice_off_and_shim_bind.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_voice_status.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_watchdog_stages.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_wiki.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_wiki_audit.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree_branch_cleanup.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree_dot_project.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree_git_truth.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree_layout.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_worktree_registry.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/tests/unit/test_zero_access_member_access.py +0 -0
- {agentwire_dev-1.77.3 → agentwire_dev-1.77.5}/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.
|
|
3
|
+
Version: 1.77.5
|
|
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.
|
|
231
|
+
Requires-Dist: damage-control-dev<0.2,>=0.1.6
|
|
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.
|
|
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.
|
|
10
10
|
|
|
11
11
|
To ship an engine change:
|
|
12
12
|
|
|
@@ -54,7 +54,8 @@
|
|
|
54
54
|
"c10d81a50fe5bf2b4d83a37bc9e58f22d2a8ea5265cd0757d6bceb38702481dd",
|
|
55
55
|
"d49e33dfeb72a8257e1853bdb4e11719610b41fb739979f439c4e08b53648705",
|
|
56
56
|
"d7323ac7f5a4f23d1b6a7455c8666a26abca2cfe248e0b9161f93346abdce82a",
|
|
57
|
-
"f399f899aac4bf0008d81c9c9b7f3a6f12927aec5a31f4d1d0b135bec4d71f67"
|
|
57
|
+
"f399f899aac4bf0008d81c9c9b7f3a6f12927aec5a31f4d1d0b135bec4d71f67",
|
|
58
|
+
"06f414695b411058d9c2c675c43d2707ddcffa970ae62506083feb1dd56802fc"
|
|
58
59
|
],
|
|
59
60
|
"databases.yaml": [
|
|
60
61
|
"0547cffb489a750505941ba773a4be03dccc8217bb358aee12cf2cff663190d3",
|
|
@@ -333,9 +333,6 @@
|
|
|
333
333
|
"\"*.min.js\"",
|
|
334
334
|
"\".git/config\"",
|
|
335
335
|
"\".git/hooks/\"",
|
|
336
|
-
"\".next/\"",
|
|
337
|
-
"\".nuxt/\"",
|
|
338
|
-
"\".output/\"",
|
|
339
336
|
"\".venv/\"",
|
|
340
337
|
"\"/bin/\"",
|
|
341
338
|
"\"/boot/\"",
|
|
@@ -347,15 +344,12 @@
|
|
|
347
344
|
"\"Gemfile.lock\"",
|
|
348
345
|
"\"Pipfile.lock\"",
|
|
349
346
|
"\"__pycache__/\"",
|
|
350
|
-
"\"build/\"",
|
|
351
347
|
"\"bun.lockb\"",
|
|
352
348
|
"\"composer.lock\"",
|
|
353
|
-
"\"dist/\"",
|
|
354
349
|
"\"flake.lock\"",
|
|
355
350
|
"\"go.sum\"",
|
|
356
351
|
"\"node_modules/\"",
|
|
357
352
|
"\"npm-shrinkwrap.json\"",
|
|
358
|
-
"\"out/\"",
|
|
359
353
|
"\"package-lock.json\"",
|
|
360
354
|
"\"pnpm-lock.yaml\"",
|
|
361
355
|
"\"poetry.lock\"",
|
|
@@ -134,7 +134,7 @@
|
|
|
134
134
|
"audit": 8,
|
|
135
135
|
"engine": 1828,
|
|
136
136
|
"engine_by_platform": 8,
|
|
137
|
-
"hooks":
|
|
137
|
+
"hooks": 1016,
|
|
138
138
|
"hooks_by_platform": 6
|
|
139
139
|
},
|
|
140
140
|
"engine": {
|
|
@@ -2755,9 +2755,9 @@
|
|
|
2755
2755
|
"unverifiable": false
|
|
2756
2756
|
},
|
|
2757
2757
|
"[\"Bash\", \"cat a.txt | sed 's|x|y|' | tee dist/o.js\", \"/golden/home\", \"default\"]": {
|
|
2758
|
-
"decision": "
|
|
2758
|
+
"decision": "allow",
|
|
2759
2759
|
"protected": false,
|
|
2760
|
-
"rule_id":
|
|
2760
|
+
"rule_id": null,
|
|
2761
2761
|
"unverifiable": false
|
|
2762
2762
|
},
|
|
2763
2763
|
"[\"Bash\", \"cat a.txt | sed 's|x|y|' | tee dist/o.js\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -6715,9 +6715,9 @@
|
|
|
6715
6715
|
"unverifiable": false
|
|
6716
6716
|
},
|
|
6717
6717
|
"[\"Bash\", \"echo x > dist/app.js\", \"/golden/home\", \"default\"]": {
|
|
6718
|
-
"decision": "
|
|
6718
|
+
"decision": "allow",
|
|
6719
6719
|
"protected": false,
|
|
6720
|
-
"rule_id":
|
|
6720
|
+
"rule_id": null,
|
|
6721
6721
|
"unverifiable": false
|
|
6722
6722
|
},
|
|
6723
6723
|
"[\"Bash\", \"echo x > dist/app.js\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9499,9 +9499,9 @@
|
|
|
9499
9499
|
"unverifiable": false
|
|
9500
9500
|
},
|
|
9501
9501
|
"[\"Bash\", \"sed 's|x|y|' notes.txt > dist/out.js\", \"/golden/home\", \"default\"]": {
|
|
9502
|
-
"decision": "
|
|
9502
|
+
"decision": "allow",
|
|
9503
9503
|
"protected": false,
|
|
9504
|
-
"rule_id":
|
|
9504
|
+
"rule_id": null,
|
|
9505
9505
|
"unverifiable": false
|
|
9506
9506
|
},
|
|
9507
9507
|
"[\"Bash\", \"sed 's|x|y|' notes.txt > dist/out.js\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9511,9 +9511,9 @@
|
|
|
9511
9511
|
"unverifiable": false
|
|
9512
9512
|
},
|
|
9513
9513
|
"[\"Bash\", \"sed -i '' 's/a/b/' dist/app.js\", \"/golden/home\", \"default\"]": {
|
|
9514
|
-
"decision": "
|
|
9514
|
+
"decision": "allow",
|
|
9515
9515
|
"protected": false,
|
|
9516
|
-
"rule_id":
|
|
9516
|
+
"rule_id": null,
|
|
9517
9517
|
"unverifiable": false
|
|
9518
9518
|
},
|
|
9519
9519
|
"[\"Bash\", \"sed -i '' 's/a/b/' dist/app.js\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9525,7 +9525,7 @@
|
|
|
9525
9525
|
"[\"Bash\", \"sed -i '1e rm -rf dist/' notes.txt\", \"/golden/home\", \"default\"]": {
|
|
9526
9526
|
"decision": "block",
|
|
9527
9527
|
"protected": false,
|
|
9528
|
-
"rule_id": "core.
|
|
9528
|
+
"rule_id": "core.rm-with-recursive-or-force-flags",
|
|
9529
9529
|
"unverifiable": false
|
|
9530
9530
|
},
|
|
9531
9531
|
"[\"Bash\", \"sed -i '1e rm -rf dist/' notes.txt\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9559,9 +9559,9 @@
|
|
|
9559
9559
|
"unverifiable": false
|
|
9560
9560
|
},
|
|
9561
9561
|
"[\"Bash\", \"sed -i 's/a/b/e' dist/x.js\", \"/golden/home\", \"default\"]": {
|
|
9562
|
-
"decision": "
|
|
9562
|
+
"decision": "allow",
|
|
9563
9563
|
"protected": false,
|
|
9564
|
-
"rule_id":
|
|
9564
|
+
"rule_id": null,
|
|
9565
9565
|
"unverifiable": false
|
|
9566
9566
|
},
|
|
9567
9567
|
"[\"Bash\", \"sed -i 's/a/b/e' dist/x.js\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9571,9 +9571,9 @@
|
|
|
9571
9571
|
"unverifiable": false
|
|
9572
9572
|
},
|
|
9573
9573
|
"[\"Bash\", \"sed -i 's/a/b/w dist/out.js' notes.txt\", \"/golden/home\", \"default\"]": {
|
|
9574
|
-
"decision": "
|
|
9574
|
+
"decision": "allow",
|
|
9575
9575
|
"protected": false,
|
|
9576
|
-
"rule_id":
|
|
9576
|
+
"rule_id": null,
|
|
9577
9577
|
"unverifiable": false
|
|
9578
9578
|
},
|
|
9579
9579
|
"[\"Bash\", \"sed -i 's/a/b/w dist/out.js' notes.txt\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -9607,9 +9607,9 @@
|
|
|
9607
9607
|
"unverifiable": false
|
|
9608
9608
|
},
|
|
9609
9609
|
"[\"Bash\", \"sed -i \\\"s|a|$(echo dist/x)|\\\" notes.txt\", \"/golden/home\", \"default\"]": {
|
|
9610
|
-
"decision": "
|
|
9610
|
+
"decision": "ask",
|
|
9611
9611
|
"protected": false,
|
|
9612
|
-
"rule_id": "core.
|
|
9612
|
+
"rule_id": "core.ambiguous-command",
|
|
9613
9613
|
"unverifiable": false
|
|
9614
9614
|
},
|
|
9615
9615
|
"[\"Bash\", \"sed -i \\\"s|a|$(echo dist/x)|\\\" notes.txt\", \"/golden/home\", \"kill-switch-off\"]": {
|
|
@@ -12411,10 +12411,10 @@
|
|
|
12411
12411
|
"rule_id": null
|
|
12412
12412
|
},
|
|
12413
12413
|
"[\"Bash\", \"cat a.txt | sed 's|x|y|' | tee dist/o.js\", \"/golden/home\", \"interactive\"]": {
|
|
12414
|
-
"audit": "
|
|
12415
|
-
"decision": "
|
|
12416
|
-
"exit":
|
|
12417
|
-
"rule_id":
|
|
12414
|
+
"audit": "allowed",
|
|
12415
|
+
"decision": "allow",
|
|
12416
|
+
"exit": 0,
|
|
12417
|
+
"rule_id": null
|
|
12418
12418
|
},
|
|
12419
12419
|
"[\"Bash\", \"cat config\", \"/golden/home\", \"interactive\", \"/golden/home/.config/git\"]": {
|
|
12420
12420
|
"audit": "allowed",
|
|
@@ -14427,10 +14427,10 @@
|
|
|
14427
14427
|
"rule_id": "core.protected-control-plane"
|
|
14428
14428
|
},
|
|
14429
14429
|
"[\"Bash\", \"echo x > dist/app.js\", \"/golden/home\", \"interactive\"]": {
|
|
14430
|
-
"audit": "
|
|
14431
|
-
"decision": "
|
|
14432
|
-
"exit":
|
|
14433
|
-
"rule_id":
|
|
14430
|
+
"audit": "allowed",
|
|
14431
|
+
"decision": "allow",
|
|
14432
|
+
"exit": 0,
|
|
14433
|
+
"rule_id": null
|
|
14434
14434
|
},
|
|
14435
14435
|
"[\"Bash\", \"echo x > hosts.yml\", \"/golden/home\", \"interactive\", \"/golden/home/.config/gh\"]": {
|
|
14436
14436
|
"audit": "blocked",
|
|
@@ -16251,22 +16251,22 @@
|
|
|
16251
16251
|
"rule_id": "core.protected-control-plane"
|
|
16252
16252
|
},
|
|
16253
16253
|
"[\"Bash\", \"sed 's|x|y|' notes.txt > dist/out.js\", \"/golden/home\", \"interactive\"]": {
|
|
16254
|
-
"audit": "
|
|
16255
|
-
"decision": "
|
|
16256
|
-
"exit":
|
|
16257
|
-
"rule_id":
|
|
16254
|
+
"audit": "allowed",
|
|
16255
|
+
"decision": "allow",
|
|
16256
|
+
"exit": 0,
|
|
16257
|
+
"rule_id": null
|
|
16258
16258
|
},
|
|
16259
16259
|
"[\"Bash\", \"sed -i '' 's/a/b/' dist/app.js\", \"/golden/home\", \"interactive\"]": {
|
|
16260
|
-
"audit": "
|
|
16261
|
-
"decision": "
|
|
16262
|
-
"exit":
|
|
16263
|
-
"rule_id":
|
|
16260
|
+
"audit": "allowed",
|
|
16261
|
+
"decision": "allow",
|
|
16262
|
+
"exit": 0,
|
|
16263
|
+
"rule_id": null
|
|
16264
16264
|
},
|
|
16265
16265
|
"[\"Bash\", \"sed -i '1e rm -rf dist/' notes.txt\", \"/golden/home\", \"interactive\"]": {
|
|
16266
16266
|
"audit": "blocked",
|
|
16267
16267
|
"decision": "block",
|
|
16268
16268
|
"exit": 2,
|
|
16269
|
-
"rule_id": "core.
|
|
16269
|
+
"rule_id": "core.rm-with-recursive-or-force-flags"
|
|
16270
16270
|
},
|
|
16271
16271
|
"[\"Bash\", \"sed -i 's/a/b/' node_modules/pkg/index.js\", \"/golden/home\", \"interactive\"]": {
|
|
16272
16272
|
"audit": "blocked",
|
|
@@ -16281,16 +16281,16 @@
|
|
|
16281
16281
|
"rule_id": "core.protected-control-plane"
|
|
16282
16282
|
},
|
|
16283
16283
|
"[\"Bash\", \"sed -i 's/a/b/e' dist/x.js\", \"/golden/home\", \"interactive\"]": {
|
|
16284
|
-
"audit": "
|
|
16285
|
-
"decision": "
|
|
16286
|
-
"exit":
|
|
16287
|
-
"rule_id":
|
|
16284
|
+
"audit": "allowed",
|
|
16285
|
+
"decision": "allow",
|
|
16286
|
+
"exit": 0,
|
|
16287
|
+
"rule_id": null
|
|
16288
16288
|
},
|
|
16289
16289
|
"[\"Bash\", \"sed -i 's/a/b/w dist/out.js' notes.txt\", \"/golden/home\", \"interactive\"]": {
|
|
16290
|
-
"audit": "
|
|
16291
|
-
"decision": "
|
|
16292
|
-
"exit":
|
|
16293
|
-
"rule_id":
|
|
16290
|
+
"audit": "allowed",
|
|
16291
|
+
"decision": "allow",
|
|
16292
|
+
"exit": 0,
|
|
16293
|
+
"rule_id": null
|
|
16294
16294
|
},
|
|
16295
16295
|
"[\"Bash\", \"sed -i 's/x/y/' ~/.agentwire/hooks/damage-control/bash-tool-damage-control.py # allow: I really want to\", \"/golden/home\", \"interactive\"]": {
|
|
16296
16296
|
"audit": "blocked",
|
|
@@ -16304,11 +16304,23 @@
|
|
|
16304
16304
|
"exit": 2,
|
|
16305
16305
|
"rule_id": "core.protected-control-plane"
|
|
16306
16306
|
},
|
|
16307
|
+
"[\"Bash\", \"sed -i \\\"s|a|$(echo dist/x)|\\\" notes.txt\", \"/golden/home\", \"bypass\"]": {
|
|
16308
|
+
"audit": "allowed",
|
|
16309
|
+
"decision": "allow",
|
|
16310
|
+
"exit": 0,
|
|
16311
|
+
"rule_id": null
|
|
16312
|
+
},
|
|
16307
16313
|
"[\"Bash\", \"sed -i \\\"s|a|$(echo dist/x)|\\\" notes.txt\", \"/golden/home\", \"interactive\"]": {
|
|
16308
|
-
"audit": "
|
|
16309
|
-
"decision": "
|
|
16310
|
-
"exit":
|
|
16311
|
-
"rule_id":
|
|
16314
|
+
"audit": "asked",
|
|
16315
|
+
"decision": "ask",
|
|
16316
|
+
"exit": 0,
|
|
16317
|
+
"rule_id": null
|
|
16318
|
+
},
|
|
16319
|
+
"[\"Bash\", \"sed -i \\\"s|a|$(echo dist/x)|\\\" notes.txt\", \"/golden/home\", \"unattended\"]": {
|
|
16320
|
+
"audit": "allowed",
|
|
16321
|
+
"decision": "allow",
|
|
16322
|
+
"exit": 0,
|
|
16323
|
+
"rule_id": null
|
|
16312
16324
|
},
|
|
16313
16325
|
"[\"Bash\", \"sed -i s/a/b/ .agentwire/config.yaml\", \"/golden/home\", \"interactive\", \"/golden/home\"]": {
|
|
16314
16326
|
"audit": "blocked",
|
|
@@ -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.1.
|
|
32
|
+
"damage-control-dev>=0.1.6,<0.2",
|
|
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",
|
|
@@ -15,7 +15,7 @@ pytestmark = pytest.mark.real_agentwire_home
|
|
|
15
15
|
BLOCKS = {
|
|
16
16
|
"zero-access": "cat server.key",
|
|
17
17
|
"zero-access-env": "grep -c TOKEN .env",
|
|
18
|
-
"read-only": "echo x >
|
|
18
|
+
"read-only": "echo x > node_modules/app.js",
|
|
19
19
|
"control-plane": "echo x > ~/.agentwire/damagecontrol.yml",
|
|
20
20
|
"protected-command": "agentwire tasks promote x",
|
|
21
21
|
"no-delete": "truncate -s0 CLAUDE.md",
|
|
@@ -25,14 +25,14 @@ def cfg():
|
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
REAL_TARGETS = {
|
|
28
|
-
"file-operand-
|
|
28
|
+
"file-operand-deps": "sed -i '' 's/a/b/' node_modules/app.js",
|
|
29
29
|
"file-operand-modules": "sed -i 's/a/b/' node_modules/pkg/index.js",
|
|
30
|
-
"write-flag": "sed -i 's/a/b/w
|
|
31
|
-
"execute-flag": "sed -i 's/a/b/e'
|
|
32
|
-
"redirect": "sed 's|x|y|' notes.txt >
|
|
33
|
-
"tee": "cat a.txt | sed 's|x|y|' | tee
|
|
34
|
-
"script-with-command": "sed -i '1e rm -rf
|
|
35
|
-
"substitution-in-script": 'sed -i "s|a|$(echo
|
|
30
|
+
"write-flag": "sed -i 's/a/b/w node_modules/out.js' notes.txt",
|
|
31
|
+
"execute-flag": "sed -i 's/a/b/e' node_modules/x.js",
|
|
32
|
+
"redirect": "sed 's|x|y|' notes.txt > node_modules/out.js",
|
|
33
|
+
"tee": "cat a.txt | sed 's|x|y|' | tee node_modules/o.js",
|
|
34
|
+
"script-with-command": "sed -i '1e rm -rf node_modules/' notes.txt",
|
|
35
|
+
"substitution-in-script": 'sed -i "s|a|$(echo node_modules/x)|" notes.txt',
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
|
|
@@ -18,7 +18,9 @@ from damage_control.engine import (
|
|
|
18
18
|
bundled_rule_sources,
|
|
19
19
|
bundled_tooldefs_dir,
|
|
20
20
|
check_command,
|
|
21
|
+
encode_unattended_allow,
|
|
21
22
|
load_config,
|
|
23
|
+
parse_unattended_allow,
|
|
22
24
|
resolve_unattended_grants,
|
|
23
25
|
unattended_grant_allows,
|
|
24
26
|
)
|
|
@@ -136,3 +138,75 @@ def test_a_grant_never_downgrades_a_hard_block(bundled_config):
|
|
|
136
138
|
weak = [c for c in ("git -C /repo push --force origin main", "git reset --hard origin/main")
|
|
137
139
|
if check_command(c, granted)["decision"] != "block"]
|
|
138
140
|
assert not weak, weak
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def test_a_cd_not_joined_by_and_is_unresolvable(bundled_config, store):
|
|
144
|
+
"""`cd X ; cmd` runs cmd even if the cd failed, so it cannot be pinned to X —
|
|
145
|
+
even when X is in scope."""
|
|
146
|
+
s, _other, scope = store
|
|
147
|
+
ok, why = _grant(f"cd {s} ; git commit -m x", s, {"git.commit": [[scope]]}, bundled_config)
|
|
148
|
+
assert not ok and "not statically knowable" in why
|
|
149
|
+
ok, why = _grant(f"cd {s} && git commit -m x", s, {"git.commit": [[scope]]}, bundled_config)
|
|
150
|
+
assert ok, why
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def test_scoped_entries_survive_the_env_wire_format():
|
|
154
|
+
"""A spawned child inherits the SCOPE through AGENTWIRE_UNATTENDED_ALLOW,
|
|
155
|
+
not a bare grant."""
|
|
156
|
+
entries = [{"id": "git.commit", "paths": ["/x/*/memory/"]}]
|
|
157
|
+
grants, errors = parse_unattended_allow(json.loads(encode_unattended_allow(entries)))
|
|
158
|
+
assert not errors and grants == {"git.commit": [["/x/*/memory/"]]}
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
def test_a_scope_rooted_behind_a_symlink_admits_its_contents(bundled_config, tmp_path):
|
|
162
|
+
"""The candidate is realpath'd, so the scope's literal prefix must be too, or
|
|
163
|
+
a scope under a symlinked directory rejects its own legitimate contents."""
|
|
164
|
+
real = tmp_path.resolve() / "real"
|
|
165
|
+
mem = real / "projects" / "proj-a" / "memory"
|
|
166
|
+
mem.mkdir(parents=True)
|
|
167
|
+
(tmp_path.resolve() / "link").symlink_to(real)
|
|
168
|
+
scope = f"{tmp_path.resolve()}/link/projects/*/memory/"
|
|
169
|
+
ok, why = _grant("git commit -m x", mem, {"git.commit": [[scope]]}, bundled_config)
|
|
170
|
+
assert ok, why
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def test_the_dash_c_chain_and_git_dir_resolve_against_the_previous_hop(bundled_config, store):
|
|
174
|
+
"""Real git: each `-C` is relative to the previous one, and `--git-dir` is
|
|
175
|
+
relative to the `-C` result — never to the session cwd."""
|
|
176
|
+
s, _other, scope = store
|
|
177
|
+
grants = {"git.commit": [[scope]]}
|
|
178
|
+
spellings = [
|
|
179
|
+
"git -C sub1 -C ../sub2 commit -m x",
|
|
180
|
+
"git -C sub1 --git-dir=../.git commit -m x",
|
|
181
|
+
"git -C sub1 --work-tree=../sub2 commit -m x",
|
|
182
|
+
]
|
|
183
|
+
refused = {c: why for c in spellings
|
|
184
|
+
for ok, why in [_grant(c, s, grants, bundled_config)] if not ok}
|
|
185
|
+
assert not refused, refused
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
def test_substitution_is_judged_by_position_not_presence(bundled_config, store):
|
|
189
|
+
"""#942/#943: a substitution in the message does not decide a directory
|
|
190
|
+
(granted); one that decides the `-C` target does (refused)."""
|
|
191
|
+
s, _other, scope = store
|
|
192
|
+
grants = {"git.commit": [[scope]]}
|
|
193
|
+
ok, why = _grant('git commit -m "$(date +%F)"', s, grants, bundled_config)
|
|
194
|
+
assert ok, why
|
|
195
|
+
ok, why = _grant('git -C "$(pwd)" commit -m x', s, grants, bundled_config)
|
|
196
|
+
assert not ok and "command substitution" in why
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
def test_inline_git_config_cannot_redirect_the_worktree(bundled_config, store):
|
|
200
|
+
"""#927: `-c core.worktree=<elsewhere>` redirects like the config two-step."""
|
|
201
|
+
s, other, scope = store
|
|
202
|
+
ok, why = _grant(f"git -c core.worktree={other} commit -m x", s, {"git.commit": [[scope]]}, bundled_config)
|
|
203
|
+
assert not ok and "core.worktree" in why
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
def test_a_scoped_grant_refuses_an_action_with_no_filesystem_target():
|
|
207
|
+
"""An MCP-synthesized command touches no directory; measuring the scope
|
|
208
|
+
against the session cwd would be meaningless, so it refuses."""
|
|
209
|
+
ok, why = unattended_grant_allows(
|
|
210
|
+
"git.commit", "agentwire email --to x", {"git.commit": [["/x/"]]}, "/x", scopeable=False
|
|
211
|
+
)
|
|
212
|
+
assert not ok and "no filesystem target" in why
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|