agentwire-dev 1.32.0__tar.gz → 1.33.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/PKG-INFO +1 -1
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/__init__.py +1 -1
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/css/desktop.css +19 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/desktop.js +11 -13
- agentwire_dev-1.33.0/agentwire/static/js/notification-prefs.js +56 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/config-section.js +56 -2
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.github/FUNDING.yml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/.gitignore +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/CHANGELOG.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/CLA.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/CODE_OF_CONDUCT.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/CONTRIBUTING.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/Dockerfile.local +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/Dockerfile.runpod +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/LICENSE +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/README.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/RELEASING.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/SECURITY.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/SPONSORS.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/__main__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/agents/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/agents/base.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/agents/tmux.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/cached_status.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/channels/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/channels/base.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/channels/email.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/channels/quo.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/cli_safety.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/completion.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/council/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/council/cli.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/council/inbox.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/council/state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/fetch.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/git_state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/instructions.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/parser.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/renderer.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/handoff/schema.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/history.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/agentwire-permission.sh +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/audit_logger.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/bash-tool-damage-control.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/edit-tool-damage-control.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/agentwire.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/aws.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/cloud-hosting.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/containers.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/core.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/databases.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/firebase.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/gcp.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/git.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/gws.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/infrastructure.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/remote.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/write-tool-damage-control.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/idle-handler.sh +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/queue-processor.sh +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/listen.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/locking.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/mcp_server.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/cli.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/dispatcher.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/eligibility.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/feedback_router.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/gc.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/github.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/naming.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/missions/state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/network.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/onboarding.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/overnight.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/pane_manager.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/project_config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/projects.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/prompts/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/prompts/init.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/agentwire.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/chatbot.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-brain.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-conscience.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-critic.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-devils-advocate.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-gut.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-historian.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-member.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/council-orchestrator.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/init.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/notifications.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/orchestrator.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/soul.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/task-runner.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/voice.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/roles/worker.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/safety/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/safety/_core.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/scheduler.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/scratchpad.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/search.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/security.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/server.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/services.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/session_ready.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-Echo--black.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-Echo--transparent.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-Echo.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-email-banner.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--full--transparent-top.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--full-black.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--telephone-fg.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--transparent-top.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--transparent.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/announcements.json +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/favicon.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/android.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/automaton.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/bot.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/cyborg.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/droid.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/drone.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/guardian.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/mech.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/probe.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/robot.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/sentinel.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/unit.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/blob.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/cloud.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/crystal.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/cyclops.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/flame.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/fuzzy.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/horned.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/moon.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/slime.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/star.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/tentacle.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/projects/winged.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/bear.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/cat.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/crown.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/custom/agentwire-portal.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/custom/agentwire-tts.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/custom/agentwire.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/deer.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/drone.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/eagle.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/fox.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/hawk.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/horse.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/lion.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/rabbit.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/robot.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/tiger.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/sessions/wolf.jpeg +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/.gitkeep +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/announcement-modal.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/api.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/artifact-window.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/collage.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/command-palette.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/components/icon-picker.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/components/list-card.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/components/type-tag.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/dead-key-suppressor.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/desktop-manager.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/icon-manager.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/notifications-panel.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/safety-shared.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/safety-window.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/scratchpad.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/session-id.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/session-window.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/machines-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/missions-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/projects-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/safety-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/services-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar/sessions-section.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/sidebar.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/terminal-font-prefs.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/tile-manager.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/token-modal.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/utils/ansi.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/utils/auto-refresh.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/voice/browser-stt.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/voice/browser-tts.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/voice/jargon.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/voice/prompt.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/js/winbox.bundle.min.js +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/stt/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/stt/base.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/stt/server_backend.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/stt/stt_server.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tasks.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/base.html +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/desktop.html +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/email_notification.html +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/handoff/theme.css.j2 +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templates/tmux.conf +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/templating.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/aws.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/docker.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/gcp.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/gh.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/git.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/gws.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/kubectl.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/npm.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/terraform.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tooldefs/uv.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/base.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/chatterbox.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/kokoro.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/qwen_base.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/qwen_custom.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/qwen_design.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/engines/zonos.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts/registry.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tts_server.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/tunnels.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/__init__.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/chunker.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/file_io.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/paths.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/speech.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/utils/subprocess.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/validation.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voiceclone.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voices/darren.wav +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voices/default.wav +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voices/jessica.wav +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voices/lisa.wav +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/voices/may.wav +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/worktree.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/decisions/obsidian-second-brain.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/logo.png +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/INDEX.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/architecture.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/communication/channels.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/communication/hammerspoon.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/communication/handoff.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/concepts.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/council.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/deployment/remote-access.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/deployment/remote-machines.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/glossary.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/internals/damage-control.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/internals/portal.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/internals/shell-escaping.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/internals/troubleshooting.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/internals/window-collage.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/missions.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/quickstart.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/services.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/sessions/pi.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/voice/shim-contract.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/voice/stt-self-hosted.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/docs/wiki/voice/tts-self-hosted.md +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/pyproject.toml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/requirements-tts.txt +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/templates/launchd/dev.agentwire.mission-dispatcher.plist +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/templates/launchd/dev.agentwire.mission-feedback-router.plist +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/templates/launchd/dev.agentwire.mission-janitor.plist +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/conftest.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/e2e/test_portal_ui.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/fixtures/sample_agentwire.yml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/fixtures/sample_config.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/fixtures/sample_scheduler.yaml +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/integration/test_missions_concurrency.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/integration/test_missions_lifecycle.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/integration/test_scheduler_board.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/integration/test_server_websockets.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_announcements.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_build_agent_command.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_channels.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_cli_commands.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_cli_output.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_cli_safety.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_council_cli.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_council_inbox.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_council_state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_damage_control_hooks.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_damage_control_sync.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_file_io.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_handoff_git_state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_handoff_instructions.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_handoff_parser.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_handoff_renderer.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_history.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_hooks_install.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_idle_handler.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_locking.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_mcp_server.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_mcp_tools_args.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_cli.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_dispatcher.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_eligibility.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_feedback_router.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_gc.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_github.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_naming.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_missions_state.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_overnight_resume_flags.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_portal_api.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_project_config.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_roles.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_safety_disabled_rules.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_safety_escape_hatch.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_safety_kill_switch.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_safety_mission_worker.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_scheduler.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_scheduler_parsing.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_scratchpad.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_search.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_security.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_server_async.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_server_pure.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_services.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_session_ready.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_speech_tags.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_stt_backend.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_tasks.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_templating.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_tmux_template.py +0 -0
- {agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/tests/unit/test_worktree.py +0 -0
|
@@ -770,6 +770,25 @@ body {
|
|
|
770
770
|
border-color: var(--accent);
|
|
771
771
|
}
|
|
772
772
|
|
|
773
|
+
.sidebar-notif-mute {
|
|
774
|
+
display: flex;
|
|
775
|
+
align-items: center;
|
|
776
|
+
gap: 6px;
|
|
777
|
+
color: var(--text-muted);
|
|
778
|
+
font-size: 13px;
|
|
779
|
+
cursor: pointer;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
.sidebar-notif-mute input[type="checkbox"] {
|
|
783
|
+
accent-color: var(--accent);
|
|
784
|
+
cursor: pointer;
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
.sidebar-display-hint {
|
|
788
|
+
color: var(--text-muted);
|
|
789
|
+
font-size: 12px;
|
|
790
|
+
}
|
|
791
|
+
|
|
773
792
|
/* Voice Indicator States */
|
|
774
793
|
#sidebarVoiceIndicator {
|
|
775
794
|
display: flex;
|
|
@@ -15,6 +15,7 @@ import { SessionWindow } from './session-window.js';
|
|
|
15
15
|
import { ArtifactWindow } from './artifact-window.js';
|
|
16
16
|
import { sidebar } from './sidebar.js';
|
|
17
17
|
import { buildSessionId, normalizeMachine, isLocalMachine } from './session-id.js';
|
|
18
|
+
import { notificationsActive } from './notification-prefs.js';
|
|
18
19
|
import { configSection } from './sidebar/config-section.js';
|
|
19
20
|
import { safetySection } from './sidebar/safety-section.js';
|
|
20
21
|
import { artifactsSection } from './sidebar/artifacts-section.js';
|
|
@@ -315,19 +316,16 @@ function handleSessionRenamed({ old_name, new_name }) {
|
|
|
315
316
|
* Shows desktop notification for background session activity.
|
|
316
317
|
*/
|
|
317
318
|
function handleWindowActivity({ session }) {
|
|
318
|
-
// Only notify if session window
|
|
319
|
-
if (desktop.getActiveWindow()
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
Notification.requestPermission();
|
|
329
|
-
}
|
|
330
|
-
}
|
|
319
|
+
// Only notify if the session window isn't the one you're looking at.
|
|
320
|
+
if (desktop.getActiveWindow() === session) return;
|
|
321
|
+
// Respects browser permission + the Config sidebar mute toggle.
|
|
322
|
+
// Enabling is done explicitly from Config → Desktop notifications, not here.
|
|
323
|
+
if (!notificationsActive()) return;
|
|
324
|
+
new Notification(`Activity in ${session}`, {
|
|
325
|
+
body: 'Session has new output',
|
|
326
|
+
icon: '/static/img/icon-192.png',
|
|
327
|
+
tag: `activity-${session}`, // Prevent duplicate notifications
|
|
328
|
+
});
|
|
331
329
|
}
|
|
332
330
|
|
|
333
331
|
// Tab / Shift+Tab to cycle open windows
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desktop notification preferences — frontend-only, per-browser.
|
|
3
|
+
*
|
|
4
|
+
* Two independent layers:
|
|
5
|
+
* - Browser permission ('default' | 'granted' | 'denied') — owned by the
|
|
6
|
+
* browser, requested via enableNotifications(). The portal can ask but
|
|
7
|
+
* cannot grant it; that's a per-origin browser decision.
|
|
8
|
+
* - A local "muted" toggle — lets the user silence bubbles without revoking
|
|
9
|
+
* the OS permission. Persisted in localStorage.
|
|
10
|
+
*
|
|
11
|
+
* Changing either dispatches `notification-pref-change` on window so the
|
|
12
|
+
* Config sidebar (and anything else) can repaint.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const MUTE_KEY = 'notificationsMuted';
|
|
16
|
+
export const NOTIFICATION_PREF_EVENT = 'notification-pref-change';
|
|
17
|
+
|
|
18
|
+
export function notificationsSupported() {
|
|
19
|
+
return typeof window !== 'undefined' && 'Notification' in window;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** 'unsupported' | 'default' | 'granted' | 'denied' */
|
|
23
|
+
export function getPermission() {
|
|
24
|
+
return notificationsSupported() ? Notification.permission : 'unsupported';
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function isMuted() {
|
|
28
|
+
return localStorage.getItem(MUTE_KEY) === '1';
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function setMuted(muted) {
|
|
32
|
+
if (muted) localStorage.setItem(MUTE_KEY, '1');
|
|
33
|
+
else localStorage.removeItem(MUTE_KEY);
|
|
34
|
+
window.dispatchEvent(new CustomEvent(NOTIFICATION_PREF_EVENT));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** True only when a bubble should actually be shown right now. */
|
|
38
|
+
export function notificationsActive() {
|
|
39
|
+
return getPermission() === 'granted' && !isMuted();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Ask the browser for permission if it hasn't been decided yet.
|
|
44
|
+
* Returns the resulting permission string. No-op (returns current state) if
|
|
45
|
+
* already granted/denied or unsupported.
|
|
46
|
+
*/
|
|
47
|
+
export async function enableNotifications() {
|
|
48
|
+
if (!notificationsSupported()) return 'unsupported';
|
|
49
|
+
let perm = Notification.permission;
|
|
50
|
+
if (perm === 'default') {
|
|
51
|
+
try { perm = await Notification.requestPermission(); }
|
|
52
|
+
catch { perm = Notification.permission; }
|
|
53
|
+
}
|
|
54
|
+
window.dispatchEvent(new CustomEvent(NOTIFICATION_PREF_EVENT));
|
|
55
|
+
return perm;
|
|
56
|
+
}
|
|
@@ -4,6 +4,9 @@ import {
|
|
|
4
4
|
setTerminalFontSize, clearTerminalFontSize,
|
|
5
5
|
FONT_SIZE_MIN, FONT_SIZE_MAX, FONT_SIZE_EVENT,
|
|
6
6
|
} from '../terminal-font-prefs.js';
|
|
7
|
+
import {
|
|
8
|
+
getPermission, isMuted, setMuted, enableNotifications,
|
|
9
|
+
} from '../notification-prefs.js';
|
|
7
10
|
|
|
8
11
|
function renderDisplayPrefs() {
|
|
9
12
|
const current = getTerminalFontSize();
|
|
@@ -20,6 +23,55 @@ function renderDisplayPrefs() {
|
|
|
20
23
|
</div>`;
|
|
21
24
|
}
|
|
22
25
|
|
|
26
|
+
function renderNotificationPrefs() {
|
|
27
|
+
const perm = getPermission();
|
|
28
|
+
const muted = isMuted();
|
|
29
|
+
|
|
30
|
+
let status, control = '';
|
|
31
|
+
if (perm === 'unsupported') {
|
|
32
|
+
status = '<em>not supported</em>';
|
|
33
|
+
} else if (perm === 'denied') {
|
|
34
|
+
status = '<em>blocked</em>';
|
|
35
|
+
control = '<span class="sidebar-display-hint">Allow in browser site settings</span>';
|
|
36
|
+
} else if (perm === 'default') {
|
|
37
|
+
status = '<em>off</em>';
|
|
38
|
+
control = '<button class="sidebar-display-reset" data-action="enable-notifs">Enable</button>';
|
|
39
|
+
} else { // granted
|
|
40
|
+
status = muted ? 'muted' : 'on';
|
|
41
|
+
control = `<label class="sidebar-notif-mute"><input type="checkbox" data-action="mute-notifs"${muted ? ' checked' : ''}/> Mute</label>`;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return `<div class="sidebar-display-prefs" data-notif-block>
|
|
45
|
+
<div class="sidebar-display-row">
|
|
46
|
+
<label class="sidebar-config-key">Desktop notifications</label>
|
|
47
|
+
<span class="sidebar-display-value" data-notif="status">${status}</span>
|
|
48
|
+
</div>
|
|
49
|
+
${control ? `<div class="sidebar-display-row">${control}</div>` : ''}
|
|
50
|
+
</div>`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function bindNotificationPrefs(body) {
|
|
54
|
+
const repaint = () => {
|
|
55
|
+
const block = body.querySelector('[data-notif-block]');
|
|
56
|
+
if (!block) return;
|
|
57
|
+
const tmp = document.createElement('div');
|
|
58
|
+
tmp.innerHTML = renderNotificationPrefs();
|
|
59
|
+
block.replaceWith(tmp.firstElementChild);
|
|
60
|
+
wire();
|
|
61
|
+
};
|
|
62
|
+
function wire() {
|
|
63
|
+
body.querySelector('[data-action="enable-notifs"]')?.addEventListener('click', async () => {
|
|
64
|
+
await enableNotifications();
|
|
65
|
+
repaint();
|
|
66
|
+
});
|
|
67
|
+
body.querySelector('[data-action="mute-notifs"]')?.addEventListener('change', (e) => {
|
|
68
|
+
setMuted(e.target.checked);
|
|
69
|
+
repaint();
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
wire();
|
|
73
|
+
}
|
|
74
|
+
|
|
23
75
|
function bindDisplayPrefs(body) {
|
|
24
76
|
const slider = body.querySelector('#termFontSize');
|
|
25
77
|
const valueEl = body.querySelector('[data-display="size"]');
|
|
@@ -54,11 +106,13 @@ export const configSection = {
|
|
|
54
106
|
else if (typeof value === 'object') display = `<code>${JSON.stringify(value)}</code>`;
|
|
55
107
|
return `<div class="sidebar-config-item"><span class="sidebar-config-key">${key}</span><span class="sidebar-config-val">${display}</span></div>`;
|
|
56
108
|
}).join('');
|
|
57
|
-
body.innerHTML = renderDisplayPrefs() + itemHtml;
|
|
109
|
+
body.innerHTML = renderDisplayPrefs() + renderNotificationPrefs() + itemHtml;
|
|
58
110
|
bindDisplayPrefs(body);
|
|
111
|
+
bindNotificationPrefs(body);
|
|
59
112
|
} catch (e) {
|
|
60
|
-
body.innerHTML = renderDisplayPrefs() + '<div class="sidebar-empty">Failed to load config</div>';
|
|
113
|
+
body.innerHTML = renderDisplayPrefs() + renderNotificationPrefs() + '<div class="sidebar-empty">Failed to load config</div>';
|
|
61
114
|
bindDisplayPrefs(body);
|
|
115
|
+
bindNotificationPrefs(body);
|
|
62
116
|
}
|
|
63
117
|
},
|
|
64
118
|
};
|
|
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
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/audit_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/agentwire.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/containers.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/core.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/databases.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/firebase.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/hooks/damage-control/rules/remote.yaml
RENAMED
|
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
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-Echo--transparent.png
RENAMED
|
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
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/agentwire-splash-logo-layers.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.32.0 → agentwire_dev-1.33.0}/agentwire/static/icons/machines/automaton.jpeg
RENAMED
|
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
|