swarph-cli 0.13.3__tar.gz → 0.13.4__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.13.3/src/swarph_cli.egg-info → swarph_cli-0.13.4}/PKG-INFO +1 -1
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/pyproject.toml +1 -1
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/__init__.py +1 -1
- {swarph_cli-0.13.3 → swarph_cli-0.13.4/src/swarph_cli.egg-info}/PKG-INFO +1 -1
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli.egg-info/SOURCES.txt +1 -0
- swarph_cli-0.13.4/tests/test_version_consistency.py +26 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/LICENSE +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/README.md +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/setup.cfg +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/caller.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/__init__.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/harden.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/lineage.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/liveness.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/manifest.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/paths.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/capture/verify.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/cell.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/__init__.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/add.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/cell.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/chat.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/compress.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/daemon.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/hook_output.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/hooks.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/import_session.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/init.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/install_hook.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/mcp_server.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/memory_sync.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/mesh.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/onboard.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/protocol_handler.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/ratify.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/security.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/spawn.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/commands/watchdog.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/compress/__init__.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/compress/levers.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/compress/marker.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/compress/verify.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/main.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/parsers/__init__.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/parsers/claude.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli.egg-info/entry_points.txt +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli.egg-info/requires.txt +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/src/swarph_cli.egg-info/top_level.txt +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_add_security_gate.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_add.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_hash.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_lib.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_mcp.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_skill.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_tool.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_artifact_uri.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_caller_meta_guard.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_capture_lineage.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_capture_liveness.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_capture_manifest.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_capture_paths.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_capture_security.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_cell_command_dispatch.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_cell_harden.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_cell_loader.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_cell_verify.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_chat_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_claude_parser.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_claude_tmux_template.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_compress_caller_convention.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_compress_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_compress_levers.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_compress_marker.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_compress_verify.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_daemon_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_feature_to_uri.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hook_output.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hooks_add.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hooks_bundle.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hooks_init.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hooks_lifecycle.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_hooks_merge.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_import_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_init_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_install_hook.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_main.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_mcp_server.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_memory_sync.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_mesh_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_mesh_sidecar.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_onboard_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_protocol_handler.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_ratify_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_repl_caller_convention.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_security.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_session_path_role_gate.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_smoke_chat.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_smoke_one_shot.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_smoke_phase_5_5.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_spawn_command.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_spawn_live_pin.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_spawn_mitosis_lineage.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_spawn_tmux_session.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_spawn_windows_relaunch.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog_dm_wake.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog_dm_wake_cooldown.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog_dm_wake_wiring.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog_model_rung.py +0 -0
- {swarph_cli-0.13.3 → swarph_cli-0.13.4}/tests/test_watchdog_stale_peers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.4
|
|
4
4
|
Summary: The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION).
|
|
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.13.
|
|
7
|
+
version = "0.13.4"
|
|
8
8
|
description = "The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION)."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: swarph-cli
|
|
3
|
-
Version: 0.13.
|
|
3
|
+
Version: 0.13.4
|
|
4
4
|
Summary: The `swarph` binary — multi-LLM CLI + mesh-gateway integration: multi-provider `swarph spawn` (claude/codex/antigravity per cell.provider via a ProviderMembrane + subprocess billing-scrub), interactive `swarph init`, `swarph mesh` (send/inbox/register) + inbox sidecar, `assisted_memory` (git-backed durable memory), session import, watchdog. v0.9.5: foolproof Windows auto-relaunch (genuine-WT detection via process ancestry, not WT_SESSION).
|
|
5
5
|
Author: Pierre Samson, Claude Opus
|
|
6
6
|
License: MIT
|
|
@@ -103,6 +103,7 @@ tests/test_spawn_live_pin.py
|
|
|
103
103
|
tests/test_spawn_mitosis_lineage.py
|
|
104
104
|
tests/test_spawn_tmux_session.py
|
|
105
105
|
tests/test_spawn_windows_relaunch.py
|
|
106
|
+
tests/test_version_consistency.py
|
|
106
107
|
tests/test_watchdog.py
|
|
107
108
|
tests/test_watchdog_dm_wake.py
|
|
108
109
|
tests/test_watchdog_dm_wake_cooldown.py
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Guard against the 0.13.3 bug class: the __version__ constant in
|
|
2
|
+
src/swarph_cli/__init__.py drifting from the pyproject version (0.13.3 shipped
|
|
3
|
+
with the constant left at 0.13.2, so `swarph --version` misreported). Reads both
|
|
4
|
+
straight from the source tree so it validates what will be built, independent of
|
|
5
|
+
whatever is pip-installed in the test env."""
|
|
6
|
+
import pathlib
|
|
7
|
+
import re
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _read_version(text: str, pattern: str) -> str:
|
|
11
|
+
m = re.search(pattern, text, re.MULTILINE)
|
|
12
|
+
assert m, f"version not found via {pattern!r}"
|
|
13
|
+
return m.group(1)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_version_constant_matches_pyproject():
|
|
17
|
+
root = pathlib.Path(__file__).resolve().parent.parent
|
|
18
|
+
pyproject_version = _read_version(
|
|
19
|
+
(root / "pyproject.toml").read_text(), r'^version\s*=\s*"([^"]+)"')
|
|
20
|
+
init_version = _read_version(
|
|
21
|
+
(root / "src" / "swarph_cli" / "__init__.py").read_text(),
|
|
22
|
+
r'^__version__\s*=\s*"([^"]+)"')
|
|
23
|
+
assert init_version == pyproject_version, (
|
|
24
|
+
f"src/swarph_cli/__init__.py __version__={init_version!r} but pyproject "
|
|
25
|
+
f"version={pyproject_version!r}. Bump BOTH on every release."
|
|
26
|
+
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|