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.
- {swarph_cli-0.7.7/src/swarph_cli.egg-info → swarph_cli-0.7.8}/PKG-INFO +3 -2
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/pyproject.toml +7 -2
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/__init__.py +1 -1
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/chat.py +16 -3
- {swarph_cli-0.7.7 → swarph_cli-0.7.8/src/swarph_cli.egg-info}/PKG-INFO +3 -2
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/requires.txt +3 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/LICENSE +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/README.md +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/setup.cfg +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/caller.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/cell.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/__init__.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/daemon.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/hook_output.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/import_session.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/install_hook.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/onboard.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/ratify.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/spawn.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/commands/watchdog.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/main.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/parsers/__init__.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/parsers/claude.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.default +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.service +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli/systemd/swarph-watchdog.timer +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/SOURCES.txt +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/dependency_links.txt +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/entry_points.txt +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/src/swarph_cli.egg-info/top_level.txt +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_cell_loader.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_chat_command.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_claude_parser.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_daemon_command.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_hook_output.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_import_command.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_install_hook.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_main.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_onboard_command.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_ratify_command.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_chat.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_one_shot.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_smoke_phase_5_5.py +0 -0
- {swarph_cli-0.7.7 → swarph_cli-0.7.8}/tests/test_spawn_command.py +0 -0
- {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.
|
|
4
|
-
Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration
|
|
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.
|
|
8
|
-
description = "The `swarph` binary — multi-LLM CLI with mesh-gateway integration
|
|
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]
|
|
@@ -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
|
-
|
|
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
|
-
|
|
149
|
-
|
|
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.
|
|
4
|
-
Summary: The `swarph` binary — multi-LLM CLI with mesh-gateway integration
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|