agentwire-dev 1.29.2__tar.gz → 1.29.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/PKG-INFO +1 -1
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/__init__.py +1 -1
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/css/desktop.css +0 -168
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/windows/chat-window.js +0 -7
- agentwire_dev-1.29.2/agentwire/static/js/pinned-message.js +0 -232
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.github/FUNDING.yml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/.gitignore +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/CHANGELOG.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/CLA.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/CODE_OF_CONDUCT.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/CONTRIBUTING.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/Dockerfile.local +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/Dockerfile.runpod +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/LICENSE +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/README.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/RELEASING.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/SECURITY.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/SPONSORS.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/__main__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/agents/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/agents/base.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/agents/tmux.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/cached_status.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/channels/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/channels/base.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/channels/email.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/channels/quo.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/cli_safety.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/completion.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/fetch.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/git_state.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/instructions.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/parser.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/renderer.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/handoff/schema.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/history.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/agentwire-permission.sh +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/audit_logger.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/bash-tool-damage-control.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/edit-tool-damage-control.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/agentwire.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/aws.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/cloud-hosting.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/containers.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/core.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/databases.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/firebase.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/gcp.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/git.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/gws.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/infrastructure.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/remote.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/write-tool-damage-control.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/idle-handler.sh +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/listen.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/locking.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/mcp_server.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/cli.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/dispatcher.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/eligibility.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/feedback_router.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/gc.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/github.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/naming.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/missions/state.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/network.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/onboarding.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/overnight.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/pane_manager.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/project_config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/projects.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/prompts/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/prompts/init.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/agentwire.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/chatbot.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/init.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/notifications.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/orchestrator.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/task-runner.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/voice.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/roles/worker.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/safety/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/safety/_core.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/scheduler.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/search.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/server.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-Echo--black.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-Echo--transparent.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-Echo.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-email-banner.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--agentwire-text.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--echo-claw-fg.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--echo.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--full--transparent-top.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--full-black.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--telephone-fg.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--telephone.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--transparent-top.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--transparent.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers--tree.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/agentwire-splash-logo-layers.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/favicon.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/android.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/automaton.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/bot.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/cyborg.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/droid.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/drone.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/guardian.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/mech.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/probe.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/robot.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/sentinel.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/machines/unit.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/blob.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/cloud.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/crystal.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/cyclops.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/flame.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/fuzzy.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/horned.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/moon.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/slime.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/star.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/tentacle.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/projects/winged.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/bear.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/cat.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/crown.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/custom/agentwire-portal.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/custom/agentwire-tts.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/custom/agentwire.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/deer.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/drone.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/eagle.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/fox.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/hawk.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/horse.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/lion.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/rabbit.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/robot.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/tiger.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/icons/sessions/wolf.jpeg +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/.gitkeep +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/artifact-window.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/command-palette.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/components/icon-picker.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/components/list-card.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/components/type-tag.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/desktop-manager.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/desktop.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/icon-manager.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/new-project-modal.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/notifications-panel.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/safety-shared.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/safety-window.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/session-id.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/session-window.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/artifacts-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/config-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/machines-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/missions-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/projects-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/safety-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/scheduler-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/services-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar/sessions-section.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/sidebar.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/terminal-font-prefs.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/tile-manager.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/utils/auto-refresh.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/static/js/winbox.bundle.min.js +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/stt/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/stt/base.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/stt/server_backend.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/stt/stt_server.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/stt/whisperkit.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tasks.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/base.html +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/desktop.html +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/email_notification.html +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/handoff/show-the-story.html.j2 +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/handoff/theme.css.j2 +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templates/tmux.conf +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/templating.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/aws.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/docker.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/gcp.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/gh.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/git.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/gws.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/kubectl.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/npm.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/terraform.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tooldefs/uv.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/base.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/chatterbox.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/kokoro.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/qwen_base.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/qwen_custom.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/qwen_design.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/engines/zonos.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/registry.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts/runpod_handler.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tts_server.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/tunnels.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/utils/__init__.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/utils/chunker.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/utils/file_io.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/utils/paths.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/utils/subprocess.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/validation.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voiceclone.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voices/darren.wav +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voices/default.wav +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voices/jessica.wav +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voices/lisa.wav +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/voices/may.wav +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/worktree.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/decisions/obsidian-second-brain.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/logo.png +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/INDEX.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/architecture.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/communication/channels.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/communication/hammerspoon.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/communication/handoff.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/concepts.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/deployment/remote-access.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/deployment/remote-machines.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/glossary.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/integrations/gws-google-workspace-cli.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/internals/damage-control.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/internals/portal.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/internals/shell-escaping.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/internals/troubleshooting.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/missions.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/quickstart.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/scheduling/scheduled-workloads.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/sessions/claude-code-auto-mode.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/sessions/pi.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/tts/runpod-tts.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/tts/stt-self-hosted.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/docs/wiki/tts/tts-self-hosted.md +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/pyproject.toml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/requirements-tts.txt +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/templates/launchd/dev.agentwire.mission-dispatcher.plist +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/templates/launchd/dev.agentwire.mission-feedback-router.plist +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/templates/launchd/dev.agentwire.mission-janitor.plist +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/conftest.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/e2e/test_portal_ui.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/fixtures/sample_agentwire.yml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/fixtures/sample_config.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/fixtures/sample_scheduler.yaml +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/integration/test_missions_concurrency.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/integration/test_missions_lifecycle.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/integration/test_scheduler_board.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/integration/test_server_websockets.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_build_agent_command.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_channels.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_cli_commands.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_cli_output.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_cli_safety.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_damage_control_hooks.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_damage_control_sync.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_file_io.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_handoff_git_state.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_handoff_instructions.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_handoff_parser.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_handoff_renderer.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_history.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_locking.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_mcp_server.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_mcp_tools_args.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_cli.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_dispatcher.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_eligibility.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_feedback_router.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_gc.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_github.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_naming.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_missions_state.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_overnight_resume_flags.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_portal_api.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_project_config.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_roles.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_safety_disabled_rules.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_safety_escape_hatch.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_safety_kill_switch.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_safety_mission_worker.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_scheduler.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_scheduler_parsing.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_search.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_server_async.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_server_pure.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_tasks.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_templating.py +0 -0
- {agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/tests/unit/test_worktree.py +0 -0
|
@@ -4706,171 +4706,3 @@ body.sidebar-pinned .sidebar-tab {
|
|
|
4706
4706
|
}
|
|
4707
4707
|
|
|
4708
4708
|
|
|
4709
|
-
/* =========================================================================
|
|
4710
|
-
Pinned Message Panel — floating, draggable, resizable
|
|
4711
|
-
========================================================================= */
|
|
4712
|
-
|
|
4713
|
-
/* Pin affordance on chat messages — visible on hover, top-right corner. */
|
|
4714
|
-
.chat-message {
|
|
4715
|
-
position: relative;
|
|
4716
|
-
padding-right: 32px;
|
|
4717
|
-
}
|
|
4718
|
-
|
|
4719
|
-
.chat-message-pin-btn {
|
|
4720
|
-
position: absolute;
|
|
4721
|
-
top: 4px;
|
|
4722
|
-
right: 4px;
|
|
4723
|
-
width: 22px;
|
|
4724
|
-
height: 22px;
|
|
4725
|
-
padding: 0;
|
|
4726
|
-
border: 1px solid var(--chrome-border);
|
|
4727
|
-
border-radius: 4px;
|
|
4728
|
-
background: var(--chrome);
|
|
4729
|
-
color: var(--text-muted);
|
|
4730
|
-
font-size: 12px;
|
|
4731
|
-
line-height: 1;
|
|
4732
|
-
cursor: pointer;
|
|
4733
|
-
opacity: 0;
|
|
4734
|
-
transition: opacity 120ms ease, color 120ms ease, background 120ms ease;
|
|
4735
|
-
}
|
|
4736
|
-
|
|
4737
|
-
.chat-message:hover .chat-message-pin-btn,
|
|
4738
|
-
.chat-message:focus-within .chat-message-pin-btn,
|
|
4739
|
-
.chat-message-pin-btn:focus-visible {
|
|
4740
|
-
opacity: 0.9;
|
|
4741
|
-
}
|
|
4742
|
-
|
|
4743
|
-
.chat-message-pin-btn:hover {
|
|
4744
|
-
background: var(--hover);
|
|
4745
|
-
color: var(--accent);
|
|
4746
|
-
opacity: 1;
|
|
4747
|
-
}
|
|
4748
|
-
|
|
4749
|
-
.chat-message-pin-btn[data-pinned="true"] {
|
|
4750
|
-
opacity: 1;
|
|
4751
|
-
color: var(--accent);
|
|
4752
|
-
border-color: var(--accent);
|
|
4753
|
-
}
|
|
4754
|
-
|
|
4755
|
-
/* The floating panel itself. position: fixed keeps it above all winboxes
|
|
4756
|
-
regardless of scroll, typing, or which session window is active. */
|
|
4757
|
-
.pinned-message-panel {
|
|
4758
|
-
position: fixed;
|
|
4759
|
-
display: flex;
|
|
4760
|
-
flex-direction: column;
|
|
4761
|
-
background: var(--chrome);
|
|
4762
|
-
color: var(--text);
|
|
4763
|
-
border: 1px solid var(--chrome-border);
|
|
4764
|
-
border-radius: 8px;
|
|
4765
|
-
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55), 0 0 0 1px var(--primary-subtle);
|
|
4766
|
-
z-index: 99998;
|
|
4767
|
-
min-width: 200px;
|
|
4768
|
-
min-height: 140px;
|
|
4769
|
-
overflow: hidden;
|
|
4770
|
-
user-select: text;
|
|
4771
|
-
}
|
|
4772
|
-
|
|
4773
|
-
.pinned-message-panel.dragging,
|
|
4774
|
-
.pinned-message-panel.resizing {
|
|
4775
|
-
user-select: none;
|
|
4776
|
-
}
|
|
4777
|
-
|
|
4778
|
-
.pinned-message-header {
|
|
4779
|
-
display: flex;
|
|
4780
|
-
align-items: center;
|
|
4781
|
-
gap: 8px;
|
|
4782
|
-
padding: 6px 10px;
|
|
4783
|
-
background: var(--background);
|
|
4784
|
-
border-bottom: 1px solid var(--chrome-border);
|
|
4785
|
-
cursor: grab;
|
|
4786
|
-
flex-shrink: 0;
|
|
4787
|
-
}
|
|
4788
|
-
|
|
4789
|
-
.pinned-message-panel.dragging .pinned-message-header {
|
|
4790
|
-
cursor: grabbing;
|
|
4791
|
-
}
|
|
4792
|
-
|
|
4793
|
-
.pinned-message-role {
|
|
4794
|
-
font-size: 11px;
|
|
4795
|
-
text-transform: uppercase;
|
|
4796
|
-
letter-spacing: 0.06em;
|
|
4797
|
-
padding: 2px 6px;
|
|
4798
|
-
border-radius: 4px;
|
|
4799
|
-
background: var(--chrome);
|
|
4800
|
-
color: var(--text-muted);
|
|
4801
|
-
border: 1px solid var(--chrome-border);
|
|
4802
|
-
flex-shrink: 0;
|
|
4803
|
-
}
|
|
4804
|
-
|
|
4805
|
-
.pinned-message-role[data-role="user"] {
|
|
4806
|
-
color: var(--accent);
|
|
4807
|
-
border-color: var(--primary-subtle);
|
|
4808
|
-
}
|
|
4809
|
-
|
|
4810
|
-
.pinned-message-title {
|
|
4811
|
-
flex: 1;
|
|
4812
|
-
font-size: 12px;
|
|
4813
|
-
color: var(--text-muted);
|
|
4814
|
-
text-transform: uppercase;
|
|
4815
|
-
letter-spacing: 0.08em;
|
|
4816
|
-
overflow: hidden;
|
|
4817
|
-
white-space: nowrap;
|
|
4818
|
-
text-overflow: ellipsis;
|
|
4819
|
-
}
|
|
4820
|
-
|
|
4821
|
-
.pinned-message-unpin {
|
|
4822
|
-
width: 22px;
|
|
4823
|
-
height: 22px;
|
|
4824
|
-
padding: 0;
|
|
4825
|
-
border: 1px solid var(--chrome-border);
|
|
4826
|
-
border-radius: 4px;
|
|
4827
|
-
background: transparent;
|
|
4828
|
-
color: var(--text-muted);
|
|
4829
|
-
font-size: 14px;
|
|
4830
|
-
line-height: 1;
|
|
4831
|
-
cursor: pointer;
|
|
4832
|
-
transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
|
|
4833
|
-
flex-shrink: 0;
|
|
4834
|
-
}
|
|
4835
|
-
|
|
4836
|
-
.pinned-message-unpin:hover {
|
|
4837
|
-
color: var(--error);
|
|
4838
|
-
border-color: var(--error);
|
|
4839
|
-
background: var(--hover);
|
|
4840
|
-
}
|
|
4841
|
-
|
|
4842
|
-
.pinned-message-body {
|
|
4843
|
-
flex: 1;
|
|
4844
|
-
overflow: auto;
|
|
4845
|
-
padding: 10px 12px;
|
|
4846
|
-
font-size: 14px;
|
|
4847
|
-
line-height: 1.45;
|
|
4848
|
-
color: var(--text);
|
|
4849
|
-
white-space: pre-wrap;
|
|
4850
|
-
word-break: break-word;
|
|
4851
|
-
}
|
|
4852
|
-
|
|
4853
|
-
/* Corner resize handle — visible on hover. */
|
|
4854
|
-
.pinned-message-resize-handle {
|
|
4855
|
-
position: absolute;
|
|
4856
|
-
right: 0;
|
|
4857
|
-
bottom: 0;
|
|
4858
|
-
width: 16px;
|
|
4859
|
-
height: 16px;
|
|
4860
|
-
cursor: nwse-resize;
|
|
4861
|
-
opacity: 0;
|
|
4862
|
-
transition: opacity 120ms ease;
|
|
4863
|
-
/* Diagonal grip lines drawn with two thin gradients. */
|
|
4864
|
-
background:
|
|
4865
|
-
linear-gradient(135deg, transparent 0 45%, var(--text-muted) 45% 55%, transparent 55% 100%) no-repeat,
|
|
4866
|
-
linear-gradient(135deg, transparent 0 70%, var(--text-muted) 70% 80%, transparent 80% 100%) no-repeat;
|
|
4867
|
-
background-size: 10px 10px, 6px 6px;
|
|
4868
|
-
background-position: bottom 3px right 3px, bottom 3px right 3px;
|
|
4869
|
-
}
|
|
4870
|
-
|
|
4871
|
-
.pinned-message-panel:hover .pinned-message-resize-handle,
|
|
4872
|
-
.pinned-message-panel.resizing .pinned-message-resize-handle {
|
|
4873
|
-
opacity: 0.85;
|
|
4874
|
-
}
|
|
4875
|
-
|
|
4876
|
-
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
|
|
12
12
|
import { desktop } from '../desktop-manager.js';
|
|
13
13
|
import { sessionIcons } from '../icon-manager.js';
|
|
14
|
-
import { pinnedMessage } from '../pinned-message.js';
|
|
15
14
|
|
|
16
15
|
/** @type {ChatWindow|null} */
|
|
17
16
|
let chatWindowInstance = null;
|
|
@@ -446,15 +445,9 @@ class ChatWindow {
|
|
|
446
445
|
const msgEl = document.createElement('div');
|
|
447
446
|
msgEl.className = `chat-message ${role}`;
|
|
448
447
|
msgEl.innerHTML = `
|
|
449
|
-
<button class="chat-message-pin-btn" title="Pin this message" aria-label="Pin message">📌</button>
|
|
450
448
|
<div class="message-text">${this._escapeHtml(text)}</div>
|
|
451
449
|
<div class="timestamp">${message.timestamp.toLocaleTimeString()}</div>
|
|
452
450
|
`;
|
|
453
|
-
const pinBtn = msgEl.querySelector('.chat-message-pin-btn');
|
|
454
|
-
pinBtn.addEventListener('click', (e) => {
|
|
455
|
-
e.stopPropagation();
|
|
456
|
-
pinnedMessage.pin({ role, text });
|
|
457
|
-
});
|
|
458
451
|
this.messagesEl.appendChild(msgEl);
|
|
459
452
|
this.messagesEl.scrollTop = this.messagesEl.scrollHeight;
|
|
460
453
|
}
|
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pinned Message Panel — floating, draggable, resizable panel that displays a
|
|
3
|
-
* pinned message body. Anchored to document.body so it survives switching
|
|
4
|
-
* between conversation windows / sessions.
|
|
5
|
-
*
|
|
6
|
-
* v1 scope: one pinned panel at a time. Pinning a new message replaces the
|
|
7
|
-
* existing one. State is in-memory only (per portal session).
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
const MIN_WIDTH = 200;
|
|
11
|
-
const MIN_HEIGHT = 140;
|
|
12
|
-
const DEFAULT_WIDTH = 320;
|
|
13
|
-
const DEFAULT_HEIGHT = 220;
|
|
14
|
-
const EDGE_PADDING = 8;
|
|
15
|
-
|
|
16
|
-
class PinnedMessagePanel {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.panel = null;
|
|
19
|
-
this.headerEl = null;
|
|
20
|
-
this.bodyEl = null;
|
|
21
|
-
this.resizeHandleEl = null;
|
|
22
|
-
this.roleLabelEl = null;
|
|
23
|
-
this.unpinBtnEl = null;
|
|
24
|
-
|
|
25
|
-
// Current pinned message ({ role, text, html })
|
|
26
|
-
this.current = null;
|
|
27
|
-
|
|
28
|
-
// Geometry (px). Initial null -> placed near top-right on first pin.
|
|
29
|
-
this.x = null;
|
|
30
|
-
this.y = null;
|
|
31
|
-
this.width = DEFAULT_WIDTH;
|
|
32
|
-
this.height = DEFAULT_HEIGHT;
|
|
33
|
-
|
|
34
|
-
// Drag state
|
|
35
|
-
this._dragging = false;
|
|
36
|
-
this._dragOffsetX = 0;
|
|
37
|
-
this._dragOffsetY = 0;
|
|
38
|
-
// Resize state
|
|
39
|
-
this._resizing = false;
|
|
40
|
-
this._resizeStartX = 0;
|
|
41
|
-
this._resizeStartY = 0;
|
|
42
|
-
this._resizeStartWidth = 0;
|
|
43
|
-
this._resizeStartHeight = 0;
|
|
44
|
-
|
|
45
|
-
this._onPointerMove = this._onPointerMove.bind(this);
|
|
46
|
-
this._onPointerUp = this._onPointerUp.bind(this);
|
|
47
|
-
this._onViewportResize = this._onViewportResize.bind(this);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Pin a message. If a panel is already shown, replaces its content
|
|
52
|
-
* while keeping position/size.
|
|
53
|
-
* @param {{ role?: string, text?: string, html?: string }} message
|
|
54
|
-
*/
|
|
55
|
-
pin(message) {
|
|
56
|
-
if (!message) return;
|
|
57
|
-
this.current = {
|
|
58
|
-
role: message.role || 'message',
|
|
59
|
-
text: message.text || '',
|
|
60
|
-
html: message.html || null,
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
if (!this.panel) {
|
|
64
|
-
this._createPanel();
|
|
65
|
-
this._placeInitial();
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
this._renderContent();
|
|
69
|
-
this.panel.style.display = 'flex';
|
|
70
|
-
this._applyGeometry();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Unpin and remove the panel from the DOM.
|
|
75
|
-
*/
|
|
76
|
-
unpin() {
|
|
77
|
-
if (!this.panel) return;
|
|
78
|
-
this.panel.remove();
|
|
79
|
-
this.panel = null;
|
|
80
|
-
this.headerEl = null;
|
|
81
|
-
this.bodyEl = null;
|
|
82
|
-
this.resizeHandleEl = null;
|
|
83
|
-
this.roleLabelEl = null;
|
|
84
|
-
this.unpinBtnEl = null;
|
|
85
|
-
this.current = null;
|
|
86
|
-
window.removeEventListener('resize', this._onViewportResize);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* True if a message is currently pinned.
|
|
91
|
-
*/
|
|
92
|
-
isPinned() {
|
|
93
|
-
return this.current !== null;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
_createPanel() {
|
|
97
|
-
const panel = document.createElement('div');
|
|
98
|
-
panel.className = 'pinned-message-panel';
|
|
99
|
-
panel.setAttribute('role', 'dialog');
|
|
100
|
-
panel.setAttribute('aria-label', 'Pinned message');
|
|
101
|
-
panel.innerHTML = `
|
|
102
|
-
<div class="pinned-message-header" data-drag-handle>
|
|
103
|
-
<span class="pinned-message-role"></span>
|
|
104
|
-
<span class="pinned-message-title">Pinned</span>
|
|
105
|
-
<button class="pinned-message-unpin" title="Unpin (remove)" aria-label="Unpin">×</button>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="pinned-message-body"></div>
|
|
108
|
-
<div class="pinned-message-resize-handle" title="Drag to resize" aria-hidden="true"></div>
|
|
109
|
-
`;
|
|
110
|
-
|
|
111
|
-
this.panel = panel;
|
|
112
|
-
this.headerEl = panel.querySelector('.pinned-message-header');
|
|
113
|
-
this.bodyEl = panel.querySelector('.pinned-message-body');
|
|
114
|
-
this.resizeHandleEl = panel.querySelector('.pinned-message-resize-handle');
|
|
115
|
-
this.roleLabelEl = panel.querySelector('.pinned-message-role');
|
|
116
|
-
this.unpinBtnEl = panel.querySelector('.pinned-message-unpin');
|
|
117
|
-
|
|
118
|
-
this.unpinBtnEl.addEventListener('click', (e) => {
|
|
119
|
-
e.stopPropagation();
|
|
120
|
-
this.unpin();
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
this.headerEl.addEventListener('pointerdown', (e) => this._onDragStart(e));
|
|
124
|
-
this.resizeHandleEl.addEventListener('pointerdown', (e) => this._onResizeStart(e));
|
|
125
|
-
|
|
126
|
-
window.addEventListener('resize', this._onViewportResize);
|
|
127
|
-
|
|
128
|
-
document.body.appendChild(panel);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
_renderContent() {
|
|
132
|
-
if (!this.current) return;
|
|
133
|
-
this.roleLabelEl.textContent = this.current.role || 'message';
|
|
134
|
-
this.roleLabelEl.dataset.role = this.current.role || 'message';
|
|
135
|
-
|
|
136
|
-
if (this.current.html) {
|
|
137
|
-
this.bodyEl.innerHTML = this.current.html;
|
|
138
|
-
} else {
|
|
139
|
-
this.bodyEl.textContent = this.current.text || '';
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
_placeInitial() {
|
|
144
|
-
if (this.x !== null && this.y !== null) return;
|
|
145
|
-
const viewportW = window.innerWidth;
|
|
146
|
-
const viewportH = window.innerHeight;
|
|
147
|
-
// Default position: upper-right inside the viewport.
|
|
148
|
-
this.x = Math.max(EDGE_PADDING, viewportW - this.width - 24);
|
|
149
|
-
this.y = 24;
|
|
150
|
-
this._clampGeometry(viewportW, viewportH);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
_applyGeometry() {
|
|
154
|
-
if (!this.panel) return;
|
|
155
|
-
this.panel.style.left = `${this.x}px`;
|
|
156
|
-
this.panel.style.top = `${this.y}px`;
|
|
157
|
-
this.panel.style.width = `${this.width}px`;
|
|
158
|
-
this.panel.style.height = `${this.height}px`;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
_clampGeometry(viewportW, viewportH) {
|
|
162
|
-
const w = viewportW ?? window.innerWidth;
|
|
163
|
-
const h = viewportH ?? window.innerHeight;
|
|
164
|
-
this.width = Math.max(MIN_WIDTH, Math.min(this.width, w - EDGE_PADDING * 2));
|
|
165
|
-
this.height = Math.max(MIN_HEIGHT, Math.min(this.height, h - EDGE_PADDING * 2));
|
|
166
|
-
this.x = Math.max(EDGE_PADDING, Math.min(this.x, w - this.width - EDGE_PADDING));
|
|
167
|
-
this.y = Math.max(EDGE_PADDING, Math.min(this.y, h - this.height - EDGE_PADDING));
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
_onDragStart(e) {
|
|
171
|
-
// Ignore drags that start on the unpin button or other interactive children
|
|
172
|
-
if (e.target.closest('.pinned-message-unpin')) return;
|
|
173
|
-
if (!this.panel) return;
|
|
174
|
-
this._dragging = true;
|
|
175
|
-
this._dragOffsetX = e.clientX - this.x;
|
|
176
|
-
this._dragOffsetY = e.clientY - this.y;
|
|
177
|
-
this.panel.classList.add('dragging');
|
|
178
|
-
this.headerEl.setPointerCapture?.(e.pointerId);
|
|
179
|
-
document.addEventListener('pointermove', this._onPointerMove);
|
|
180
|
-
document.addEventListener('pointerup', this._onPointerUp);
|
|
181
|
-
e.preventDefault();
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
_onResizeStart(e) {
|
|
185
|
-
if (!this.panel) return;
|
|
186
|
-
this._resizing = true;
|
|
187
|
-
this._resizeStartX = e.clientX;
|
|
188
|
-
this._resizeStartY = e.clientY;
|
|
189
|
-
this._resizeStartWidth = this.width;
|
|
190
|
-
this._resizeStartHeight = this.height;
|
|
191
|
-
this.panel.classList.add('resizing');
|
|
192
|
-
this.resizeHandleEl.setPointerCapture?.(e.pointerId);
|
|
193
|
-
document.addEventListener('pointermove', this._onPointerMove);
|
|
194
|
-
document.addEventListener('pointerup', this._onPointerUp);
|
|
195
|
-
e.preventDefault();
|
|
196
|
-
e.stopPropagation();
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
_onPointerMove(e) {
|
|
200
|
-
if (this._dragging) {
|
|
201
|
-
this.x = e.clientX - this._dragOffsetX;
|
|
202
|
-
this.y = e.clientY - this._dragOffsetY;
|
|
203
|
-
this._clampGeometry();
|
|
204
|
-
this._applyGeometry();
|
|
205
|
-
} else if (this._resizing) {
|
|
206
|
-
const dx = e.clientX - this._resizeStartX;
|
|
207
|
-
const dy = e.clientY - this._resizeStartY;
|
|
208
|
-
this.width = this._resizeStartWidth + dx;
|
|
209
|
-
this.height = this._resizeStartHeight + dy;
|
|
210
|
-
this._clampGeometry();
|
|
211
|
-
this._applyGeometry();
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
_onPointerUp() {
|
|
216
|
-
if (this._dragging || this._resizing) {
|
|
217
|
-
this._dragging = false;
|
|
218
|
-
this._resizing = false;
|
|
219
|
-
this.panel?.classList.remove('dragging', 'resizing');
|
|
220
|
-
document.removeEventListener('pointermove', this._onPointerMove);
|
|
221
|
-
document.removeEventListener('pointerup', this._onPointerUp);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
_onViewportResize() {
|
|
226
|
-
if (!this.panel) return;
|
|
227
|
-
this._clampGeometry();
|
|
228
|
-
this._applyGeometry();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
export const pinnedMessage = new PinnedMessagePanel();
|
|
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.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/audit_logger.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/agentwire.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/containers.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/core.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/agentwire/hooks/damage-control/rules/databases.yaml
RENAMED
|
File without changes
|
{agentwire_dev-1.29.2 → agentwire_dev-1.29.3}/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.29.2 → agentwire_dev-1.29.3}/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
|