swarph-cli 0.69.1__tar.gz → 0.69.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.
- {swarph_cli-0.69.1/src/swarph_cli.egg-info → swarph_cli-0.69.3}/PKG-INFO +2 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/pyproject.toml +4 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/__init__.py +1 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/providers.py +4 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/mesh.py +33 -16
- {swarph_cli-0.69.1 → swarph_cli-0.69.3/src/swarph_cli.egg-info}/PKG-INFO +2 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli.egg-info/requires.txt +3 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_brain_ask_command.py +4 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_packaged_artifacts_exist.py +4 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_tmux_wake_submit_verify.py +80 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog.py +4 -1
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/LICENSE +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/README.md +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/setup.cfg +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/__main__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/backends.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/pack.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/prices.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/quality.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/refresh_prices.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/rules.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/runner.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/bench/validate.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/caller.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/harden.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/lineage.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/liveness.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/manifest.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/paths.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/capture/verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/cell.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/chain_token.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/channel.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/_content.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/_display.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/_gateway_client.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/add.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/bench.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/board.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/board_merge_check.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/brain.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/brain_ask.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/cell.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/cell_probe.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/cell_selfcheck.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/channel.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/chat.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/codegraph.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/codegraph_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/codex_hook_output.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/codex_waker.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/compress.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/daemon.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/dreaming.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/event.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/gateway.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/gh_route.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/group.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/guide.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/highlight.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/hook_interpreter.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/hook_output.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/hooks.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/import_session.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/init.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_codex_hooks.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_multiplexer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_opencode_plugin.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_postcompact_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/install_wake_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/lane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/mcp_server.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/memory.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/memory_emit_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/memory_sync.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/monitor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/okf_links.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/onboard.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/peer_reply_drain.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/postcompact_hook_output.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/protocol_handler.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/ratify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/schedule.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/security.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/service.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/spawn.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/timeline.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/version.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/wake_hook_output.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/commands/watchdog.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/compress/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/compress/levers.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/compress/marker.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/compress/verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/console_safe.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/delivery_queue.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dm_frame.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/candidates.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/clone.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/enrich.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/index_check.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/notify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/organize.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/probes.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/report.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/run.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/slm.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/transcripts.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/dreaming/verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/feature_registry.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/lanes_control.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/schema.sql +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/server.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway/services_control.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gateway_default.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/gh_identity.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/guide/GUIDE.md +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/identity.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/main.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/multiplexer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/orphan_daemons.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/pane_probe.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/parsers/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/parsers/claude.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/opencode/plugin.js +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/_shim.cmd +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/postcompact-recall-grok.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/postcompact-recall.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/posttooluse-emit-antigravity.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/posttooluse-emit-claude.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/posttooluse-emit-grok.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/posttooluse-emit.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/posttooluse-recall.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/precompact-flag.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/preinvocation-recall-antigravity.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/sessionstart-recall.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_executor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_executor_windows.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_reconciliation.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_reply_outbox.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_service_host.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_service_payload.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_service_reply.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/peer_staging.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/query_filters.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/dm_notify_filter.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/ensure_monitor.sh +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/install_codex_waker_windows.ps1 +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/install_monitor_task_windows.ps1 +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/scripts/wake_watchdog.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/service/__init__.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/service/app.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/service/providers.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/session_bridge.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/skills/i-have-adhd/LICENSE +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/skills/i-have-adhd/SKILL.md +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/source_text.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/stall_alert.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/codex-waker.default +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/peer-reply-drain.default +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-codex-outbox@.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-codex-outbox@.timer +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-codex-waker@.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-codex-waker@.timer +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-monitor-reexec.path +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-monitor-reexec.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-monitor@.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-peer-reply-drain@.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-peer-reply-drain@.timer +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/timeline_paths.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli/tokens.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli.egg-info/SOURCES.txt +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli.egg-info/entry_points.txt +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/src/swarph_cli.egg-info/top_level.txt +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_124_register_merge.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_126_pending_from_complete.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_132_ensure_monitor_state_dir.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_138_memory_navigate.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_139_tool_probe.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_183_card_anchor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_184_notify_honesty.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_201_win32_bash_refusal.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_243_onboard_per_peer_token.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_307_task4_ask_reply.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_312_codegraph_fuzzy_verb.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_319_refusal_exit_codes.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_323_mistral_backend.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_332_report_organize_findings.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_356_query_filters.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_397_gh_identity_router.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_397_router_preflight.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_402_one_identity_resolver.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_467b_onboard_operator_credential.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_472_register_caller_binding.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_523_guide.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_524_conftest_hermeticity.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_532_accept_flag.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_535_version_capability.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_546_default_gateway.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_547_verbs_from_registry.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_548_gateway_remainder.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_552_codegraph_gateway.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_555_relay_row_shape.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_556_relay_freshness.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_559_edges_truncated.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_564_bootstrap_first_peer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_578_no_machine_specific_host_defaults.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_579_register_bootstrap_message.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_591_cli_step_graph.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_644_monitor_supervision.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_648_install_unit.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_654_reexec.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_656_owned_slm.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_684_dreaming_verb.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_689_pkg_version_order.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_716_timeline_one_path.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_724_ps1_ascii_or_bom.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_725_stdio_reconfigure.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_729_dm_once.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_729_wake_watchdog.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_734_dreaming_enrich_degrade.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_735_dm_mcp_tools.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_740_edit_project.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_762_cards_edit_priority.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_764_enrich_collapse.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_801_confirm_flow_cli.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_802_stage_history.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_825_codegraph_hook_noise.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_825_install_posttooluse_only.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_825_remaining_cap_shred_bind.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_829_counterfactual_column.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_830_hook_binding_version.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_84_cli_labels.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_866_doctrine_guide.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_872_identity_refuses_not_warns.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_874_source_text.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_888_opencode_data_dir_can_fail.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_937_dreaming_notify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_938_organize_line_limit.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_941_bench_backends.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_941_harness_342.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_945_same_line_pairing.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_955_prompt_audit.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_957_auth_http.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_959_venv_interpreter.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_960_channel.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_963_plugin_manifest.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_964_channel_cell.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_965_mesh_wait.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_975_channel_hop.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_add_security_gate.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_add.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_hash.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_lib.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_mcp.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_skill.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_tool.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_artifact_uri.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_backends.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_pack.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_prices.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_quality.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_runner.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_bench_validate.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_board_card_thread.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_board_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_board_merge_check.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_board_obligation_close.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_brain_ask_env_diagnosis.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_brain_ask_identity_explicitness.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_brain_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_caller_meta_guard.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_capture_lineage.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_capture_liveness.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_capture_manifest.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_capture_paths.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_capture_security.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cell_command_dispatch.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cell_harden.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cell_loader.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cell_selfcheck.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cell_verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_chain_token.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_channel_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_channel_poll_never_breaks_dms.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_channel_post.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_channel_wake_policy_filter.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_chat_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_claude_parser.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_claude_tmux_template.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_codegraph_caller_scope.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_codegraph_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_codegraph_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_codegraph_mcp.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_codex_waker.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_compress_caller_convention.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_compress_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_compress_levers.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_compress_marker.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_compress_verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_console_encoding_e2e.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_content_composition.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_cursor_membrane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_daemon_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_daemon_console_encoding.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_daemon_delivery.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_delivery_queue.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_display_sanitize.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_ensure_monitor_no_peer_default.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_event_emit.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_feature_to_uri.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_gateway_brain.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_gateway_client.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_gateway_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_gateway_message_idempotency.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_gh_route_doctor_mesh_name.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_group_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_guide_commands_parse.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_guide_selfcheck.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_heartbeat_check.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_highlight_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hook_output.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_activity_marker.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_add.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_bundle.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_init.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_legacy_generation_removal.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_lifecycle.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_merge.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_verify.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_win32_bash_wrapper.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_hooks_win32_command_path.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_import_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_inbox_identity_provenance.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_init_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_init_provider_menu.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_install_codex_hooks.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_install_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_install_multiplexer_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_install_postcompact_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_install_wake_hook.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_lane_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_main.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_main_unknown_verb_guard.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mcp_missing_hint.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mcp_server.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_memory_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_memory_emit_snippet.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_memory_gateway.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_memory_sync.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_memory_sync_membrane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_inbox_mark_read.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_inbox_sanitize.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_originate_thread_623.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_send_unknown_peer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_sidecar.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_sidecar_cursor_decoupled.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_mesh_sidecar_wake_survives_read.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_meta_edge_identity.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_monitor_channel_poll.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_monitor_cli.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_monitor_daemon_collision.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_monitor_self_name_verification.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_monitor_state_split.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_multiplexer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_muse_membrane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_muse_own_cli.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_obligation_close_is_surfaced.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_okf_links.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_onboard_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_opencode_membrane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_opencode_plugin.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_orphan_daemons.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_packaged_skills.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_executor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_executor_windows.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_reply_drain_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_reply_drain_supervisor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_reply_outbox.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_reply_transport.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_service_e2e.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_service_host.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_service_payload.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_peer_service_reply.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_postcompact_recall.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_process_liveness.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_protocol_handler.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_providers_isolation.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_ratify_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_readme_claims_no_gateway_default.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_repl_caller_convention.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_schedule_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_schedule_create_contract.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_security.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_service_app.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_service_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_service_providers.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_session_bridge_inject.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_session_bridge_probe.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_session_bridge_resolve.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_session_path_role_gate.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_shipped_units_match_the_cli.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_smoke_chat.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_smoke_one_shot.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_smoke_phase_5_5.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_base_hoist.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_identity_stamp.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_live_pin.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_mitosis_lineage.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_tmux_session.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_spawn_windows_relaunch.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_stall_alert.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_subprocess_decode_encoding.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_timeline_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_tmux_wake_runstate_defer.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_tmux_wake_session_reanchor.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_tmux_wake_stale.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_token_file_one_parser.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_token_precedence_explicit_first.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_unified_token_resolver.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_version_command.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_version_consistency.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_vibe_membrane.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_dm_wake.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_dm_wake_cooldown.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_dm_wake_wiring.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_emit_health.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_install_flags.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_model_rung.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/tests/test_watchdog_stale_peers.py +0 -0
- {swarph_cli-0.69.1 → swarph_cli-0.69.3}/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.69.
|
|
3
|
+
Version: 0.69.3
|
|
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
|
|
@@ -26,6 +26,7 @@ License-File: LICENSE
|
|
|
26
26
|
Requires-Dist: swarph-mesh<0.10,>=0.5.0
|
|
27
27
|
Requires-Dist: swarph-shared<0.9,>=0.7.0
|
|
28
28
|
Requires-Dist: PyYAML>=6.0
|
|
29
|
+
Requires-Dist: tomli>=1.1; python_version < "3.11"
|
|
29
30
|
Provides-Extra: dev
|
|
30
31
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
31
32
|
Provides-Extra: mcp
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "swarph-cli"
|
|
7
|
-
version = "0.69.
|
|
7
|
+
version = "0.69.3"
|
|
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" }
|
|
@@ -73,6 +73,9 @@ dependencies = [
|
|
|
73
73
|
# Stays a swarph-cli dep since file I/O is operator-tooling-layer
|
|
74
74
|
# concern; swarph-shared cell module is pure-stdlib.
|
|
75
75
|
"PyYAML>=6.0",
|
|
76
|
+
# tomllib is stdlib from 3.11. bench/providers.py (and the tests that read
|
|
77
|
+
# pyproject.toml) fall back to tomli on the declared 3.10 floor. card #1000.
|
|
78
|
+
"tomli>=1.1; python_version < \"3.11\"",
|
|
76
79
|
]
|
|
77
80
|
|
|
78
81
|
[project.urls]
|
|
@@ -2000,10 +2000,14 @@ _WAKE_PROMPT = "check mesh"
|
|
|
2000
2000
|
# not shown. Longer than _WAKE_PROMPT, so wake-text detection strips this
|
|
2001
2001
|
# one first.
|
|
2002
2002
|
_OPENCODE_WAKE_PROMPT = "check mesh: swarph_dm_unread"
|
|
2003
|
-
# A finished turn keeps its ▣ header and adds a
|
|
2004
|
-
#
|
|
2005
|
-
#
|
|
2006
|
-
|
|
2003
|
+
# A finished turn keeps its ▣ header and adds a duration.
|
|
2004
|
+
# Short turns read `· 3.3s` (drop-on-meta-edge, 1.18.33, card #961 post
|
|
2005
|
+
# 54557). A longer idle turn reads `· 3m 4s` (opencode pane, 2026-09-29
|
|
2006
|
+
# 07:10Z). On a wide pane the same row continues into the sidebar, so the
|
|
2007
|
+
# duration is not the end of the line. An in-progress header has no duration.
|
|
2008
|
+
_OPENCODE_DONE = re.compile(
|
|
2009
|
+
r"·\s*(?:\d+h\s*)?(?:\d+m\s*)?\d+(?:\.\d+)?s\b"
|
|
2010
|
+
)
|
|
2007
2011
|
# Submit-verify bounds (#533): the settle pause lets the -l literal LAND in
|
|
2008
2012
|
# the composer before Enter can submit it (the blind gesture raced this), and
|
|
2009
2013
|
# the attempt bound keeps a never-submitting pane from being Enter-spammed
|
|
@@ -2189,13 +2193,29 @@ def _opencode_turn_finished_target(target: str) -> bool:
|
|
|
2189
2193
|
return _opencode_turn_finished(lines)
|
|
2190
2194
|
|
|
2191
2195
|
|
|
2196
|
+
def _opencode_row_text(line: str) -> str:
|
|
2197
|
+
"""Text on one ``┃`` row, with a right-aligned footer cut off.
|
|
2198
|
+
|
|
2199
|
+
A long cwd:branch is drawn inside the box, right-aligned, and wraps
|
|
2200
|
+
across as many rows as the path needs. The gap before that footer is
|
|
2201
|
+
a run of 4 or more spaces. Composer text is the left side of the row.
|
|
2202
|
+
Leading spaces stay in place for the split, then the left side is
|
|
2203
|
+
stripped. Skipping a fixed number of rows cannot work: the row count
|
|
2204
|
+
is the path length over the box width.
|
|
2205
|
+
"""
|
|
2206
|
+
idx = line.find("┃")
|
|
2207
|
+
if idx < 0:
|
|
2208
|
+
return ""
|
|
2209
|
+
return re.split(r" {4,}", line[idx + 1:], maxsplit=1)[0].strip()
|
|
2210
|
+
|
|
2211
|
+
|
|
2192
2212
|
def _opencode_input(lines: list[str]) -> Optional[str]:
|
|
2193
|
-
"""
|
|
2213
|
+
"""Composer text inside the box, '' when that box is empty, None if no box.
|
|
2194
2214
|
|
|
2195
|
-
Walk up from the mode row.
|
|
2196
|
-
|
|
2197
|
-
|
|
2198
|
-
|
|
2215
|
+
Walk up from the mode row. Each ``┃`` row contributes only the text
|
|
2216
|
+
before its footer gap. The walk stops at the first line that is not a
|
|
2217
|
+
``┃`` row — the top of the box — so a transcript ``┃`` row above the
|
|
2218
|
+
box is never composer text.
|
|
2199
2219
|
"""
|
|
2200
2220
|
mode_at = None
|
|
2201
2221
|
for i, ln in enumerate(lines):
|
|
@@ -2204,14 +2224,11 @@ def _opencode_input(lines: list[str]) -> Optional[str]:
|
|
|
2204
2224
|
if mode_at is None:
|
|
2205
2225
|
return None
|
|
2206
2226
|
for ln in reversed(lines[:mode_at]):
|
|
2207
|
-
|
|
2208
|
-
if s.startswith("▣"):
|
|
2227
|
+
if not ln.strip().startswith("┃"):
|
|
2209
2228
|
return ""
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
if body:
|
|
2214
|
-
return body
|
|
2229
|
+
text = _opencode_row_text(ln)
|
|
2230
|
+
if text:
|
|
2231
|
+
return text
|
|
2215
2232
|
return ""
|
|
2216
2233
|
|
|
2217
2234
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.69.
|
|
3
|
+
Version: 0.69.3
|
|
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
|
|
@@ -26,6 +26,7 @@ License-File: LICENSE
|
|
|
26
26
|
Requires-Dist: swarph-mesh<0.10,>=0.5.0
|
|
27
27
|
Requires-Dist: swarph-shared<0.9,>=0.7.0
|
|
28
28
|
Requires-Dist: PyYAML>=6.0
|
|
29
|
+
Requires-Dist: tomli>=1.1; python_version < "3.11"
|
|
29
30
|
Provides-Extra: dev
|
|
30
31
|
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
31
32
|
Provides-Extra: mcp
|
|
@@ -32,7 +32,10 @@ def test_version_matches_the_packaged_version():
|
|
|
32
32
|
agree, which is what its name promised all along.
|
|
33
33
|
"""
|
|
34
34
|
import pathlib
|
|
35
|
-
|
|
35
|
+
try:
|
|
36
|
+
import tomllib
|
|
37
|
+
except ModuleNotFoundError: # py3.10
|
|
38
|
+
import tomli as tomllib
|
|
36
39
|
|
|
37
40
|
import swarph_cli
|
|
38
41
|
|
|
@@ -45,7 +45,10 @@ def test_file_exists_in_the_package_tree(rel, why):
|
|
|
45
45
|
@pytest.mark.parametrize("rel,why", REQUIRED, ids=[r for r, _ in REQUIRED])
|
|
46
46
|
def test_file_is_declared_as_package_data(rel, why):
|
|
47
47
|
"""Existing in src/ is NOT enough — it must be declared or the wheel omits it."""
|
|
48
|
-
|
|
48
|
+
try:
|
|
49
|
+
import tomllib
|
|
50
|
+
except ModuleNotFoundError: # py3.10
|
|
51
|
+
import tomli as tomllib
|
|
49
52
|
cfg = tomllib.loads((PKG.parent.parent / "pyproject.toml").read_text())
|
|
50
53
|
patterns = cfg["tool"]["setuptools"]["package-data"]["swarph_cli"]
|
|
51
54
|
suffix = pathlib.Path(rel).suffix
|
|
@@ -602,6 +602,86 @@ _OPENCODE_FINISHED = """\
|
|
|
602
602
|
"""
|
|
603
603
|
|
|
604
604
|
|
|
605
|
+
def test_live_idle_footer_is_clear_and_not_running(tmux):
|
|
606
|
+
"""The 07:10Z pane: composer empty, transcript full of ┃ rows, footer
|
|
607
|
+
cwd on the ┃ row above the mode row, finished header `· 3m 4s`.
|
|
608
|
+
0.69.1 returns that path as composer text and treats the header as
|
|
609
|
+
still running."""
|
|
610
|
+
from pathlib import Path
|
|
611
|
+
fixture = (Path(__file__).resolve().parent / "fixtures"
|
|
612
|
+
/ "opencode-pane-idle-footer-0710.txt")
|
|
613
|
+
text = fixture.read_text(encoding="utf-8")
|
|
614
|
+
lines = text.splitlines()
|
|
615
|
+
assert any("Found the real blocker" in ln and ln.strip().startswith("┃")
|
|
616
|
+
for ln in lines)
|
|
617
|
+
_calls, state = tmux
|
|
618
|
+
state["captures"] = [text]
|
|
619
|
+
assert mesh._opencode_input(lines) == ""
|
|
620
|
+
assert mesh._composer_state("sac") == "clear"
|
|
621
|
+
assert mesh._agent_running("sac") is False
|
|
622
|
+
|
|
623
|
+
|
|
624
|
+
def test_drop_six_captures_split_the_footer():
|
|
625
|
+
"""A wrapped cwd is a run of spaces, not a fixed number of rows.
|
|
626
|
+
Measured by drop-on-meta-edge on sacW 220x55 (card #961, #612)."""
|
|
627
|
+
from pathlib import Path
|
|
628
|
+
fix = Path(__file__).resolve().parent / "fixtures"
|
|
629
|
+
wide = (fix / "opencode-961" / "W2_turn2.txt").read_text(encoding="utf-8")
|
|
630
|
+
narrow = (fix / "opencode-961" / "G3_turn2.txt").read_text(encoding="utf-8")
|
|
631
|
+
live = (fix / "opencode-pane-idle-footer-0710.txt").read_text(encoding="utf-8")
|
|
632
|
+
assert mesh._opencode_input(wide.splitlines()) == ""
|
|
633
|
+
assert mesh._opencode_input(live.splitlines()) == ""
|
|
634
|
+
assert mesh._opencode_input(narrow.splitlines()) == ""
|
|
635
|
+
typed_narrow = "\n".join([
|
|
636
|
+
" ┃",
|
|
637
|
+
" ┃ hello from a human",
|
|
638
|
+
" ┃",
|
|
639
|
+
" ┃ Build · DeepSeek V4 Pro (New) OpenCode Go",
|
|
640
|
+
])
|
|
641
|
+
assert mesh._opencode_input(typed_narrow.splitlines()) == "hello from a human"
|
|
642
|
+
overlay = (
|
|
643
|
+
" ┃ hello from a human" + (" " * 150)
|
|
644
|
+
+ "meta-edge/d7cba227-9da7-4d92-92da-"
|
|
645
|
+
)
|
|
646
|
+
typed_wide = "\n".join([
|
|
647
|
+
" ┃",
|
|
648
|
+
overlay,
|
|
649
|
+
" ┃ Build · DeepSeek V4 Pro (New) OpenCode Go" + (" " * 40)
|
|
650
|
+
+ "feat/sacrificial-612",
|
|
651
|
+
])
|
|
652
|
+
assert mesh._opencode_input(typed_wide.splitlines()) == "hello from a human"
|
|
653
|
+
holding = "\n".join([
|
|
654
|
+
"┃",
|
|
655
|
+
"┃ check mesh: swarph_dm_unread",
|
|
656
|
+
"┃",
|
|
657
|
+
"┃ Build · DeepSeek V4 Pro (New) OpenCode Go",
|
|
658
|
+
])
|
|
659
|
+
assert mesh._opencode_input(holding.splitlines()) == "check mesh: swarph_dm_unread"
|
|
660
|
+
# A wide pane keeps the sidebar on the ▣ row, past the duration.
|
|
661
|
+
sidebar = "▣ Build · DeepSeek V4.1 Flash · 5.1s" + (" " * 40) + "LSPs are disabled"
|
|
662
|
+
assert mesh._OPENCODE_DONE.search(sidebar)
|
|
663
|
+
assert mesh._opencode_running([sidebar]) is False
|
|
664
|
+
assert mesh._opencode_running(["▣ Build · DeepSeek V4 Pro (New)"]) is True
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
def test_wide_empty_box_records_the_wake_outstanding(tmux):
|
|
668
|
+
"""W-D1: the footer showed up after Enter and the old read called the
|
|
669
|
+
box busy, so the injected wake was reported as a human's line and
|
|
670
|
+
wake_outstanding stayed unset."""
|
|
671
|
+
from pathlib import Path
|
|
672
|
+
wide = (Path(__file__).resolve().parent / "fixtures" / "opencode-961"
|
|
673
|
+
/ "W2_turn2.txt").read_text(encoding="utf-8")
|
|
674
|
+
calls, state = tmux
|
|
675
|
+
state["captures"] = [wide]
|
|
676
|
+
st = _State()
|
|
677
|
+
assert mesh.TmuxSink("sacW").deliver(st, [], 1) is True
|
|
678
|
+
assert st.ledger("x")["wake_outstanding"] is True
|
|
679
|
+
literals = [c for c in calls if "-l" in c]
|
|
680
|
+
assert literals == [[
|
|
681
|
+
"tmux", "send-keys", "-t", "sacW", "-l", mesh._OPENCODE_WAKE_PROMPT]]
|
|
682
|
+
assert enters(calls) == 1
|
|
683
|
+
|
|
684
|
+
|
|
605
685
|
def test_opencode_idle_box_is_a_clear_composer(tmux):
|
|
606
686
|
calls, state = tmux
|
|
607
687
|
state["captures"] = [_OPENCODE_IDLE]
|
|
@@ -1183,7 +1183,10 @@ def test_version_matches_the_packaged_version():
|
|
|
1183
1183
|
agree, which is what its name promised all along.
|
|
1184
1184
|
"""
|
|
1185
1185
|
import pathlib
|
|
1186
|
-
|
|
1186
|
+
try:
|
|
1187
|
+
import tomllib
|
|
1188
|
+
except ModuleNotFoundError: # py3.10
|
|
1189
|
+
import tomli as tomllib
|
|
1187
1190
|
|
|
1188
1191
|
import swarph_cli
|
|
1189
1192
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.69.1 → swarph_cli-0.69.3}/src/swarph_cli/payloads/postcompact/postcompact-recall.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|