swarph-cli 0.7.7__tar.gz → 0.7.8__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.
Files changed (45) hide show
  1. {swarph_cli-0.7.7/src/swarph_cli.egg-info → swarph_cli-0.7.8}/PKG-INFO +3 -2
  2. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/pyproject.toml +7 -2
  3. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/__init__.py +1 -1
  4. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/chat.py +16 -3
  5. {swarph_cli-0.7.7 → swarph_cli-0.7.8/src/swarph_cli.egg-info}/PKG-INFO +3 -2
  6. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/requires.txt +3 -0
  7. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/LICENSE +0 -0
  8. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/README.md +0 -0
  9. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/setup.cfg +0 -0
  10. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/caller.py +0 -0
  11. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/cell.py +0 -0
  12. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/__init__.py +0 -0
  13. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/daemon.py +0 -0
  14. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/hook_output.py +0 -0
  15. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/import_session.py +0 -0
  16. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/install_hook.py +0 -0
  17. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/onboard.py +0 -0
  18. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/ratify.py +0 -0
  19. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/spawn.py +0 -0
  20. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/watchdog.py +0 -0
  21. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/main.py +0 -0
  22. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/parsers/__init__.py +0 -0
  23. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/parsers/claude.py +0 -0
  24. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
  25. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
  26. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
  27. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/SOURCES.txt +0 -0
  28. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
  29. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/entry_points.txt +0 -0
  30. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/top_level.txt +0 -0
  31. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_cell_loader.py +0 -0
  32. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_chat_command.py +0 -0
  33. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_claude_parser.py +0 -0
  34. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_daemon_command.py +0 -0
  35. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_hook_output.py +0 -0
  36. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_import_command.py +0 -0
  37. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_install_hook.py +0 -0
  38. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_main.py +0 -0
  39. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_onboard_command.py +0 -0
  40. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_ratify_command.py +0 -0
  41. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_chat.py +0 -0
  42. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_one_shot.py +0 -0
  43. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_phase_5_5.py +0 -0
  44. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_spawn_command.py +0 -0
  45. {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_watchdog.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: swarph-cli
3
- Version: 0.7.7
4
- Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration. v0.7.0 ships Phase 7 substrate-doc R7 §11.1.7 operator-tooling layer in 5 increments: PR-A `--new-instance` flag (sibling-spawn case) + PR-B auto-suffix on collision (sibling-slot persistence) + PR-C SessionStart hook (closes bare-claude operator-paste gap) + watchdog (stranded-session recovery) + PR-D swarph-shared cell.yaml relocation (cell-yaml schema graduates to swarph-shared 0.3.0 kernel-tier; substrate-doc R7 §11.1.5 (O5) RESOLVED).
3
+ Version: 0.7.8
4
+ Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration: one-shot + chat REPL, multi-provider routing (gemini/claude/deepseek/openai/grok), cell.yaml spawn, session import, and watchdog. v0.7.8 fixes Windows chat-REPL portability: stdlib `readline` is POSIX-only, so native Windows fell back to bare input() and echoed Enter as ^M (CR=Ctrl-M) while breaking line editing adds a `pyreadline3` fallback (win32-only dependency) plus a CR-strip guard on parsed input.
5
5
  Author: Pierre Samson, Claude Opus
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/darw007d/swarph-cli
@@ -27,6 +27,7 @@ License-File: LICENSE
27
27
  Requires-Dist: swarph-mesh>=0.5.0
28
28
  Requires-Dist: swarph-shared>=0.3.0
29
29
  Requires-Dist: PyYAML>=6.0
30
+ Requires-Dist: pyreadline3>=3.4; sys_platform == "win32"
30
31
  Provides-Extra: dev
31
32
  Requires-Dist: pytest>=7.0; extra == "dev"
32
33
  Dynamic: license-file
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "swarph-cli"
7
- version = "0.7.7"
8
- description = "The `swarph` binary — multi-LLM CLI with mesh-gateway integration. v0.7.0 ships Phase 7 substrate-doc R7 §11.1.7 operator-tooling layer in 5 increments: PR-A `--new-instance` flag (sibling-spawn case) + PR-B auto-suffix on collision (sibling-slot persistence) + PR-C SessionStart hook (closes bare-claude operator-paste gap) + watchdog (stranded-session recovery) + PR-D swarph-shared cell.yaml relocation (cell-yaml schema graduates to swarph-shared 0.3.0 kernel-tier; substrate-doc R7 §11.1.5 (O5) RESOLVED)."
7
+ version = "0.7.8"
8
+ description = "The `swarph` binary — multi-LLM CLI with mesh-gateway integration: one-shot + chat REPL, multi-provider routing (gemini/claude/deepseek/openai/grok), cell.yaml spawn, session import, and watchdog. v0.7.8 fixes Windows chat-REPL portability: stdlib `readline` is POSIX-only, so native Windows fell back to bare input() and echoed Enter as ^M (CR=Ctrl-M) while breaking line editing adds a `pyreadline3` fallback (win32-only dependency) plus a CR-strip guard on parsed input."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
11
11
  requires-python = ">=3.10"
@@ -42,6 +42,11 @@ dependencies = [
42
42
  # Stays a swarph-cli dep since file I/O is operator-tooling-layer
43
43
  # concern; swarph-shared cell module is pure-stdlib.
44
44
  "PyYAML>=6.0",
45
+ # Windows portability: stdlib `readline` is POSIX-only, so the chat
46
+ # REPL falls back to bare input() on native Windows — which echoes
47
+ # Enter as ^M (CR=Ctrl-M) + breaks line editing in mintty/Git-Bash.
48
+ # pyreadline3 supplies the readline interface on Windows only.
49
+ "pyreadline3>=3.4; sys_platform == 'win32'",
45
50
  ]
46
51
 
47
52
  [project.urls]
@@ -16,6 +16,6 @@ The architecture splits CLI from substrate so:
16
16
 
17
17
  from __future__ import annotations
18
18
 
19
- __version__ = "0.7.7"
19
+ __version__ = "0.7.8"
20
20
 
21
21
  __all__ = ["__version__"]
@@ -141,12 +141,25 @@ def _print(msg: str = "", *, file=None) -> None:
141
141
  def _read_line(prompt: str) -> str:
142
142
  """Single-line input. Tests monkeypatch this to inject scripted
143
143
  input. Production uses stdlib ``input()`` — readline is auto-loaded
144
- by import-time on POSIX, giving line editing + history for free."""
144
+ at import-time on POSIX, giving line editing + history for free.
145
+
146
+ Windows portability: stdlib ``readline`` is POSIX-only, so on native
147
+ Windows it's absent and ``input()`` runs raw. In mintty/Git-Bash and
148
+ some non-conhost consoles that makes the Enter keypress echo a raw
149
+ carriage return as ``^M`` (CR = 0x0D = Ctrl-M) and breaks line editing.
150
+ ``pyreadline3`` provides the readline interface on Windows; we fall back
151
+ to it so native consoles get proper line discipline. The ``rstrip``
152
+ below also strips any stray ``\\r`` from the parsed value as a guard,
153
+ independent of the echo fix. (Cleanest of all: run swarph inside WSL,
154
+ which is POSIX and loads stdlib readline directly.)"""
145
155
  try:
146
156
  import readline # noqa: F401 — side-effect-only on POSIX
147
157
  except ImportError:
148
- pass # Windows / minimal builds; raw input still works
149
- return input(prompt)
158
+ try:
159
+ import pyreadline3 # noqa: F401 — Windows readline shim
160
+ except ImportError:
161
+ pass # minimal build; raw input still works (rstrip guards CR)
162
+ return input(prompt).rstrip("\r\n")
150
163
 
151
164
 
152
165
  def _format_attribution(
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: swarph-cli
3
- Version: 0.7.7
4
- Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration. v0.7.0 ships Phase 7 substrate-doc R7 §11.1.7 operator-tooling layer in 5 increments: PR-A `--new-instance` flag (sibling-spawn case) + PR-B auto-suffix on collision (sibling-slot persistence) + PR-C SessionStart hook (closes bare-claude operator-paste gap) + watchdog (stranded-session recovery) + PR-D swarph-shared cell.yaml relocation (cell-yaml schema graduates to swarph-shared 0.3.0 kernel-tier; substrate-doc R7 §11.1.5 (O5) RESOLVED).
3
+ Version: 0.7.8
4
+ Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration: one-shot + chat REPL, multi-provider routing (gemini/claude/deepseek/openai/grok), cell.yaml spawn, session import, and watchdog. v0.7.8 fixes Windows chat-REPL portability: stdlib `readline` is POSIX-only, so native Windows fell back to bare input() and echoed Enter as ^M (CR=Ctrl-M) while breaking line editing adds a `pyreadline3` fallback (win32-only dependency) plus a CR-strip guard on parsed input.
5
5
  Author: Pierre Samson, Claude Opus
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/darw007d/swarph-cli
@@ -27,6 +27,7 @@ License-File: LICENSE
27
27
  Requires-Dist: swarph-mesh>=0.5.0
28
28
  Requires-Dist: swarph-shared>=0.3.0
29
29
  Requires-Dist: PyYAML>=6.0
30
+ Requires-Dist: pyreadline3>=3.4; sys_platform == "win32"
30
31
  Provides-Extra: dev
31
32
  Requires-Dist: pytest>=7.0; extra == "dev"
32
33
  Dynamic: license-file
@@ -2,5 +2,8 @@ swarph-mesh>=0.5.0
2
2
  swarph-shared>=0.3.0
3
3
  PyYAML>=6.0
4
4
 
5
+ [:sys_platform == "win32"]
6
+ pyreadline3>=3.4
7
+
5
8
  [dev]
6
9
  pytest>=7.0
File without changes
File without changes
File without changes