swarph-cli 0.7.8__tar.gz → 0.8.0__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 (46) hide show
  1. {swarph_cli-0.7.8/src/swarph_cli.egg-info → swarph_cli-0.8.0}/PKG-INFO +2 -3
  2. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/pyproject.toml +2 -7
  3. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/__init__.py +1 -1
  4. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/chat.py +7 -13
  5. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/spawn.py +359 -136
  6. {swarph_cli-0.7.8 → swarph_cli-0.8.0/src/swarph_cli.egg-info}/PKG-INFO +2 -3
  7. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli.egg-info/SOURCES.txt +1 -0
  8. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli.egg-info/requires.txt +0 -3
  9. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_cell_loader.py +10 -2
  10. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_spawn_command.py +408 -6
  11. swarph_cli-0.8.0/tests/test_spawn_windows_relaunch.py +129 -0
  12. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/LICENSE +0 -0
  13. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/README.md +0 -0
  14. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/setup.cfg +0 -0
  15. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/caller.py +0 -0
  16. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/cell.py +0 -0
  17. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/__init__.py +0 -0
  18. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/daemon.py +0 -0
  19. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/hook_output.py +0 -0
  20. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/import_session.py +0 -0
  21. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/install_hook.py +0 -0
  22. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/onboard.py +0 -0
  23. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/ratify.py +0 -0
  24. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/commands/watchdog.py +0 -0
  25. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/main.py +0 -0
  26. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/parsers/__init__.py +0 -0
  27. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/parsers/claude.py +0 -0
  28. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
  29. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
  30. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
  31. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
  32. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli.egg-info/entry_points.txt +0 -0
  33. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/src/swarph_cli.egg-info/top_level.txt +0 -0
  34. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_chat_command.py +0 -0
  35. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_claude_parser.py +0 -0
  36. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_daemon_command.py +0 -0
  37. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_hook_output.py +0 -0
  38. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_import_command.py +0 -0
  39. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_install_hook.py +0 -0
  40. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_main.py +0 -0
  41. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_onboard_command.py +0 -0
  42. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_ratify_command.py +0 -0
  43. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_smoke_chat.py +0 -0
  44. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_smoke_one_shot.py +0 -0
  45. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/tests/test_smoke_phase_5_5.py +0 -0
  46. {swarph_cli-0.7.8 → swarph_cli-0.8.0}/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.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.
3
+ Version: 0.8.0
4
+ Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration: one-shot + chat REPL, multi-provider routing, cell.yaml spawn, session import, watchdog. v0.8.0: multi-provider spawn membrane `swarph spawn` launches claude, codex (GPT), or antigravity/agy (Gemini) per cell.provider, each with billing-scrub + sandbox; plus the Windows conhost auto-relaunch into Windows Terminal (the Enter-inserts-'m' TUI fix).
5
5
  Author: Pierre Samson, Claude Opus
6
6
  License: MIT
7
7
  Project-URL: Homepage, https://github.com/darw007d/swarph-cli
@@ -27,7 +27,6 @@ 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"
31
30
  Provides-Extra: dev
32
31
  Requires-Dist: pytest>=7.0; extra == "dev"
33
32
  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.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."
7
+ version = "0.8.0"
8
+ description = "The `swarph` binary — multi-LLM CLI with mesh-gateway integration: one-shot + chat REPL, multi-provider routing, cell.yaml spawn, session import, watchdog. v0.8.0: multi-provider spawn membrane `swarph spawn` launches claude, codex (GPT), or antigravity/agy (Gemini) per cell.provider, each with billing-scrub + sandbox; plus the Windows conhost auto-relaunch into Windows Terminal (the Enter-inserts-'m' TUI fix)."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
11
11
  requires-python = ">=3.10"
@@ -42,11 +42,6 @@ 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'",
50
45
  ]
51
46
 
52
47
  [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.8"
19
+ __version__ = "0.8.0"
20
20
 
21
21
  __all__ = ["__version__"]
@@ -143,22 +143,16 @@ def _read_line(prompt: str) -> str:
143
143
  input. Production uses stdlib ``input()`` — readline is auto-loaded
144
144
  at import-time on POSIX, giving line editing + history for free.
145
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.)"""
146
+ NB: do NOT re-add a ``pyreadline3`` shim here. v0.7.8 tried that to fix
147
+ a Windows "Enter renders 'm'" report, but that symptom traced to Claude
148
+ Code's OWN TUI on native Windows (no hooks, recent version, fails at the
149
+ trust prompt Anthropic-side), NOT this REPL. Bare ``input()`` is clean
150
+ on the Windows console; the ``rstrip`` is a harmless CR guard. v0.7.9
151
+ reverted the pyreadline3 dep + shim."""
155
152
  try:
156
153
  import readline # noqa: F401 — side-effect-only on POSIX
157
154
  except ImportError:
158
- try:
159
- import pyreadline3 # noqa: F401 — Windows readline shim
160
- except ImportError:
161
- pass # minimal build; raw input still works (rstrip guards CR)
155
+ pass # Windows / minimal builds; raw input still works
162
156
  return input(prompt).rstrip("\r\n")
163
157
 
164
158