swarph-cli 0.68.1__tar.gz → 0.68.2__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.
- {swarph_cli-0.68.1/src/swarph_cli.egg-info → swarph_cli-0.68.2}/PKG-INFO +1 -1
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/pyproject.toml +1 -1
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/__init__.py +1 -1
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/wake_watchdog.py +18 -10
- {swarph_cli-0.68.1 → swarph_cli-0.68.2/src/swarph_cli.egg-info}/PKG-INFO +1 -1
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_729_wake_watchdog.py +20 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/LICENSE +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/README.md +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/setup.cfg +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/__main__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/backends.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/pack.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/prices.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/providers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/quality.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/refresh_prices.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/rules.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/runner.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/bench/validate.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/caller.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/harden.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/lineage.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/liveness.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/manifest.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/paths.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/capture/verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/cell.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/chain_token.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/channel.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/_content.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/_display.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/_gateway_client.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/add.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/bench.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/board.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/board_merge_check.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/brain.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/brain_ask.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/cell.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/cell_probe.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/cell_selfcheck.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/channel.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/chat.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/codegraph.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/codegraph_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/codex_hook_output.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/codex_waker.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/compress.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/daemon.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/dreaming.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/event.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/gateway.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/gh_route.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/group.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/guide.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/highlight.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/hook_interpreter.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/hook_output.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/hooks.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/import_session.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/init.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_codex_hooks.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_multiplexer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_opencode_plugin.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_postcompact_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/install_wake_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/lane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/mcp_server.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/memory.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/memory_emit_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/memory_sync.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/mesh.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/monitor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/okf_links.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/onboard.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/peer_reply_drain.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/postcompact_hook_output.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/protocol_handler.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/ratify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/schedule.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/security.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/service.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/spawn.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/timeline.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/version.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/wake_hook_output.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/commands/watchdog.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/compress/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/compress/levers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/compress/marker.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/compress/verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/console_safe.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/delivery_queue.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dm_frame.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/candidates.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/clone.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/enrich.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/index_check.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/notify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/organize.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/probes.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/report.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/run.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/slm.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/transcripts.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/dreaming/verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/feature_registry.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/lanes_control.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/schema.sql +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/server.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway/services_control.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gateway_default.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/gh_identity.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/guide/GUIDE.md +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/main.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/multiplexer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/orphan_daemons.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/pane_probe.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/parsers/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/parsers/claude.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/opencode/plugin.js +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/_shim.cmd +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/postcompact-recall-grok.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/postcompact-recall.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit-antigravity.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit-claude.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit-grok.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-recall.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/precompact-flag.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/preinvocation-recall-antigravity.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/sessionstart-recall.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_executor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_executor_windows.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_reconciliation.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_reply_outbox.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_service_host.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_service_payload.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_service_reply.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/peer_staging.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/query_filters.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/dm_notify_filter.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/ensure_monitor.sh +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/install_codex_waker_windows.ps1 +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/install_monitor_task_windows.ps1 +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/service/__init__.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/service/app.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/service/providers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/session_bridge.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/skills/i-have-adhd/LICENSE +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/skills/i-have-adhd/SKILL.md +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/source_text.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/stall_alert.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/codex-waker.default +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/peer-reply-drain.default +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-codex-outbox@.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-codex-outbox@.timer +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-codex-waker@.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-codex-waker@.timer +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-monitor-reexec.path +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-monitor-reexec.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-monitor@.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-peer-reply-drain@.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-peer-reply-drain@.timer +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/timeline_paths.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/tokens.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli.egg-info/SOURCES.txt +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli.egg-info/entry_points.txt +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli.egg-info/requires.txt +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli.egg-info/top_level.txt +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_124_register_merge.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_126_pending_from_complete.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_132_ensure_monitor_state_dir.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_138_memory_navigate.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_139_tool_probe.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_183_card_anchor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_184_notify_honesty.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_201_win32_bash_refusal.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_243_onboard_per_peer_token.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_307_task4_ask_reply.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_312_codegraph_fuzzy_verb.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_319_refusal_exit_codes.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_323_mistral_backend.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_332_report_organize_findings.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_356_query_filters.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_397_gh_identity_router.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_397_router_preflight.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_467b_onboard_operator_credential.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_523_guide.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_524_conftest_hermeticity.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_532_accept_flag.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_535_version_capability.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_546_default_gateway.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_547_verbs_from_registry.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_548_gateway_remainder.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_552_codegraph_gateway.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_555_relay_row_shape.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_556_relay_freshness.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_559_edges_truncated.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_564_bootstrap_first_peer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_578_no_machine_specific_host_defaults.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_579_register_bootstrap_message.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_591_cli_step_graph.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_644_monitor_supervision.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_648_install_unit.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_654_reexec.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_656_owned_slm.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_684_dreaming_verb.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_689_pkg_version_order.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_716_timeline_one_path.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_724_ps1_ascii_or_bom.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_725_stdio_reconfigure.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_729_dm_once.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_734_dreaming_enrich_degrade.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_735_dm_mcp_tools.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_740_edit_project.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_762_cards_edit_priority.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_764_enrich_collapse.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_801_confirm_flow_cli.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_802_stage_history.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_825_codegraph_hook_noise.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_825_install_posttooluse_only.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_825_remaining_cap_shred_bind.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_829_counterfactual_column.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_830_hook_binding_version.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_84_cli_labels.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_866_doctrine_guide.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_872_identity_refuses_not_warns.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_874_source_text.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_888_opencode_data_dir_can_fail.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_937_dreaming_notify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_938_organize_line_limit.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_941_bench_backends.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_941_harness_342.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_945_same_line_pairing.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_955_prompt_audit.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_957_auth_http.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_959_venv_interpreter.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_960_channel.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_963_plugin_manifest.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_964_channel_cell.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_965_mesh_wait.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_975_channel_hop.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_add_security_gate.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_add.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_hash.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_lib.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_mcp.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_skill.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_tool.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_artifact_uri.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_backends.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_pack.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_prices.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_quality.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_runner.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_bench_validate.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_board_card_thread.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_board_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_board_merge_check.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_board_obligation_close.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_brain_ask_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_brain_ask_env_diagnosis.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_brain_ask_identity_explicitness.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_brain_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_caller_meta_guard.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_capture_lineage.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_capture_liveness.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_capture_manifest.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_capture_paths.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_capture_security.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cell_command_dispatch.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cell_harden.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cell_loader.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cell_selfcheck.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cell_verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_chain_token.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_channel_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_channel_poll_never_breaks_dms.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_channel_post.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_channel_wake_policy_filter.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_chat_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_claude_parser.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_claude_tmux_template.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_codegraph_caller_scope.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_codegraph_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_codegraph_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_codegraph_mcp.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_codex_waker.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_compress_caller_convention.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_compress_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_compress_levers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_compress_marker.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_compress_verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_console_encoding_e2e.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_content_composition.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_cursor_membrane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_daemon_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_daemon_console_encoding.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_daemon_delivery.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_delivery_queue.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_display_sanitize.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_ensure_monitor_no_peer_default.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_event_emit.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_feature_to_uri.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_gateway_brain.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_gateway_client.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_gateway_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_gateway_message_idempotency.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_gh_route_doctor_mesh_name.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_group_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_guide_commands_parse.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_guide_selfcheck.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_heartbeat_check.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_highlight_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hook_output.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_activity_marker.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_add.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_bundle.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_init.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_legacy_generation_removal.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_lifecycle.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_merge.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_win32_bash_wrapper.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_hooks_win32_command_path.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_import_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_inbox_identity_provenance.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_init_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_init_provider_menu.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_install_codex_hooks.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_install_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_install_multiplexer_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_install_postcompact_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_install_wake_hook.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_lane_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_main.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_main_unknown_verb_guard.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mcp_missing_hint.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mcp_server.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_memory_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_memory_emit_snippet.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_memory_gateway.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_memory_sync.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_memory_sync_membrane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_inbox_mark_read.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_inbox_sanitize.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_originate_thread_623.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_send_unknown_peer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_sidecar.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_sidecar_cursor_decoupled.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_mesh_sidecar_wake_survives_read.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_meta_edge_identity.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_monitor_channel_poll.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_monitor_cli.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_monitor_daemon_collision.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_monitor_self_name_verification.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_monitor_state_split.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_multiplexer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_muse_membrane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_muse_own_cli.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_obligation_close_is_surfaced.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_okf_links.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_onboard_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_opencode_membrane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_opencode_plugin.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_orphan_daemons.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_packaged_artifacts_exist.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_packaged_skills.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_executor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_executor_windows.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_reply_drain_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_reply_drain_supervisor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_reply_outbox.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_reply_transport.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_service_e2e.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_service_host.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_service_payload.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_peer_service_reply.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_postcompact_recall.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_process_liveness.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_protocol_handler.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_providers_isolation.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_ratify_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_readme_claims_no_gateway_default.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_repl_caller_convention.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_schedule_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_schedule_create_contract.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_security.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_service_app.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_service_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_service_providers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_session_bridge_inject.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_session_bridge_probe.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_session_bridge_resolve.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_session_path_role_gate.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_shipped_units_match_the_cli.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_smoke_chat.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_smoke_one_shot.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_smoke_phase_5_5.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_base_hoist.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_identity_stamp.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_live_pin.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_mitosis_lineage.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_tmux_session.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_spawn_windows_relaunch.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_stall_alert.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_subprocess_decode_encoding.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_timeline_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_tmux_wake_runstate_defer.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_tmux_wake_session_reanchor.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_tmux_wake_stale.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_tmux_wake_submit_verify.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_token_file_one_parser.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_token_precedence_explicit_first.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_unified_token_resolver.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_version_command.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_version_consistency.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_vibe_membrane.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_dm_wake.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_dm_wake_cooldown.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_dm_wake_wiring.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_emit_health.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_install_flags.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_model_rung.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_watchdog_stale_peers.py +0 -0
- {swarph_cli-0.68.1 → swarph_cli-0.68.2}/tests/test_windows_waker_installer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.68.
|
|
3
|
+
Version: 0.68.2
|
|
4
4
|
Summary: The `swarph` binary — a multi-LLM CLI and mesh-gateway client + bundled server (`swarph gateway`): one-shot prompts across providers, interactive `chat`, multi-provider `spawn` (claude/codex/antigravity via a ProviderMembrane with subprocess billing-scrub), `mesh` send/inbox/register, `brain-ask` over the swarph-brain (gbrain) semantic memory, git-backed `assisted_memory`, per-invocation `gh` identity routing, a silent DM-wake hook, session `import`, and a stranded-session `watchdog`.
|
|
5
5
|
Author: Pierre Samson, Claude Opus
|
|
6
6
|
License: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "swarph-cli"
|
|
7
|
-
version = "0.68.
|
|
7
|
+
version = "0.68.2"
|
|
8
8
|
description = "The `swarph` binary — a multi-LLM CLI and mesh-gateway client + bundled server (`swarph gateway`): one-shot prompts across providers, interactive `chat`, multi-provider `spawn` (claude/codex/antigravity via a ProviderMembrane with subprocess billing-scrub), `mesh` send/inbox/register, `brain-ask` over the swarph-brain (gbrain) semantic memory, git-backed `assisted_memory`, per-invocation `gh` identity routing, a silent DM-wake hook, session `import`, and a stranded-session `watchdog`."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -16,11 +16,28 @@ from typing import Iterable
|
|
|
16
16
|
GAP_SECONDS = 60
|
|
17
17
|
|
|
18
18
|
|
|
19
|
+
def _channel_alive(inbox: str, now: float | None = None) -> bool:
|
|
20
|
+
"""A channel server writes channel_heartbeat.json beside the inbox every 60 s.
|
|
21
|
+
|
|
22
|
+
`swarph channel-serve` takes no inbox argument, so no command line names the
|
|
23
|
+
path; a fresh heartbeat is the only evidence the channel is reading.
|
|
24
|
+
"""
|
|
25
|
+
hb = Path(inbox).parent / "channel_heartbeat.json"
|
|
26
|
+
try:
|
|
27
|
+
ts = float(json.loads(hb.read_text(encoding="utf-8")).get("ts") or 0)
|
|
28
|
+
except (OSError, ValueError, TypeError, AttributeError):
|
|
29
|
+
return False
|
|
30
|
+
return (time.time() if now is None else now) - ts < 180
|
|
31
|
+
|
|
32
|
+
|
|
19
33
|
def _watching(inbox: str, cmdlines: Iterable[str]) -> bool:
|
|
20
|
-
"""A reader is tail or dm_notify_filter with the inbox path as its own argument
|
|
34
|
+
"""A reader is tail or dm_notify_filter with the inbox path as its own argument,
|
|
35
|
+
or a channel server whose heartbeat is fresh.
|
|
21
36
|
|
|
22
37
|
A process that merely mentions the path (a prompt, a log line) is not a reader.
|
|
23
38
|
"""
|
|
39
|
+
if _channel_alive(inbox):
|
|
40
|
+
return True
|
|
24
41
|
for cmd in cmdlines:
|
|
25
42
|
parts = cmd.split()
|
|
26
43
|
if inbox not in parts:
|
|
@@ -29,15 +46,6 @@ def _watching(inbox: str, cmdlines: Iterable[str]) -> bool:
|
|
|
29
46
|
return True
|
|
30
47
|
if any(p.endswith("dm_notify_filter") or p.endswith("dm_notify_filter.py") for p in parts):
|
|
31
48
|
return True
|
|
32
|
-
if any(p.endswith("swarph_cli.channel") or p.endswith("channel.py") for p in parts):
|
|
33
|
-
hb = Path(inbox).parent / "channel_heartbeat.json"
|
|
34
|
-
try:
|
|
35
|
-
data = json.loads(hb.read_text(encoding="utf-8"))
|
|
36
|
-
ts = float(data.get("ts") or 0)
|
|
37
|
-
except (OSError, ValueError, TypeError):
|
|
38
|
-
continue
|
|
39
|
-
if time.time() - ts < 180:
|
|
40
|
-
return True
|
|
41
49
|
return False
|
|
42
50
|
|
|
43
51
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.68.
|
|
3
|
+
Version: 0.68.2
|
|
4
4
|
Summary: The `swarph` binary — a multi-LLM CLI and mesh-gateway client + bundled server (`swarph gateway`): one-shot prompts across providers, interactive `chat`, multi-provider `spawn` (claude/codex/antigravity via a ProviderMembrane with subprocess billing-scrub), `mesh` send/inbox/register, `brain-ask` over the swarph-brain (gbrain) semantic memory, git-backed `assisted_memory`, per-invocation `gh` identity routing, a silent DM-wake hook, session `import`, and a stranded-session `watchdog`.
|
|
5
5
|
Author: Pierre Samson, Claude Opus
|
|
6
6
|
License: MIT
|
|
@@ -218,3 +218,23 @@ def test_failed_send_is_not_saved_as_alerted_and_the_next_run_retries(tmp_path):
|
|
|
218
218
|
assert retried.returncode == 0
|
|
219
219
|
done = json.loads(state_path.read_text())
|
|
220
220
|
assert done["nobody"]["outage"] is True
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
def test_a_channel_cell_with_a_fresh_heartbeat_is_watched(tmp_path):
|
|
224
|
+
"""Live 2026-09-28: `swarph channel-serve` has no inbox path on its command line, so the
|
|
225
|
+
old cmdline match never fired and every channel cell was paged 'DM wake is dead' (msgs
|
|
226
|
+
53556-54021). Fails on main: scan alerts although the heartbeat is 5 s old."""
|
|
227
|
+
import time as _t
|
|
228
|
+
inbox = tmp_path / "mesh-sidecar" / "inbox.log"
|
|
229
|
+
inbox.parent.mkdir(parents=True)
|
|
230
|
+
inbox.write_text("")
|
|
231
|
+
hb = inbox.parent / "channel_heartbeat.json"
|
|
232
|
+
cells = {"drop": str(inbox)}
|
|
233
|
+
channel_ps = ["/usr/bin/python3 /home/ubuntu/.local/bin/swarph channel-serve"]
|
|
234
|
+
state = {}
|
|
235
|
+
hb.write_text(json.dumps({"pid": 1, "ts": _t.time() - 5}))
|
|
236
|
+
assert scan(cells, channel_ps, state, now=0) == []
|
|
237
|
+
assert scan(cells, channel_ps, state, now=120) == []
|
|
238
|
+
hb.write_text(json.dumps({"pid": 1, "ts": _t.time() - 600})) # server died 10 min ago
|
|
239
|
+
assert scan(cells, channel_ps, state, now=130) == []
|
|
240
|
+
assert scan(cells, channel_ps, state, now=200) == ["drop"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/postcompact-recall.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit-grok.sh
RENAMED
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-emit.sh
RENAMED
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/posttooluse-recall.sh
RENAMED
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/precompact-flag.sh
RENAMED
|
File without changes
|
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/payloads/postcompact/sessionstart-recall.sh
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
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/install_codex_waker_windows.ps1
RENAMED
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/scripts/install_monitor_task_windows.ps1
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
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-monitor-reexec.service
RENAMED
|
File without changes
|
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-peer-reply-drain@.service
RENAMED
|
File without changes
|
{swarph_cli-0.68.1 → swarph_cli-0.68.2}/src/swarph_cli/systemd/swarph-peer-reply-drain@.timer
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
|