refactorai-cli 0.7.5__tar.gz → 0.7.6__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.
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/PKG-INFO +2 -2
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/pyproject.toml +2 -2
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/__init__.py +1 -1
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/watch_cmds.py +39 -11
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/PKG-INFO +2 -2
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/requires.txt +1 -1
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/README.md +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/auth.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/client.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/cloud_rr.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/__init__.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/account_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/auth_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/branch_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/cloud_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/engine_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/hook_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/model_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/policy_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/pre_push_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/request_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/rules_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/run_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/runtime_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/runtime_proxy_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/setup_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/toolchains_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commands/workspace_cmds.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commit_queue.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/commit_telemetry.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/control_plane.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/credentials.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/dotenv_loader.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/git_scope.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/local_constitution.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/local_engine_runtime.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/local_paths.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/main.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/model_policy.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/pre_push_gate.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/refactor_branch_store.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/review_runner.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/runtime_manager.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/settings.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/setup_flow.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/watch_ledger.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/watch_state.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli/watch_supervisor.py +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/SOURCES.txt +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/dependency_links.txt +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/entry_points.txt +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/refactorai_cli.egg-info/top_level.txt +0 -0
- {refactorai_cli-0.7.5 → refactorai_cli-0.7.6}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: refactorai-cli
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
4
4
|
Summary: Local-first CLI for the refactor platform
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -8,7 +8,7 @@ Requires-Dist: typer>=0.12.0
|
|
|
8
8
|
Requires-Dist: httpx>=0.27.0
|
|
9
9
|
Requires-Dist: rich>=13.7.0
|
|
10
10
|
Requires-Dist: PyYAML>=6.0.1
|
|
11
|
-
Requires-Dist: refactorai-core>=3.2.
|
|
11
|
+
Requires-Dist: refactorai-core>=3.2.18
|
|
12
12
|
|
|
13
13
|
# refactorai-cli
|
|
14
14
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "refactorai-cli"
|
|
3
|
-
version = "0.7.
|
|
3
|
+
version = "0.7.6"
|
|
4
4
|
description = "Local-first CLI for the refactor platform"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -12,7 +12,7 @@ dependencies = [
|
|
|
12
12
|
"httpx>=0.27.0",
|
|
13
13
|
"rich>=13.7.0",
|
|
14
14
|
"PyYAML>=6.0.1",
|
|
15
|
-
"refactorai-core>=3.2.
|
|
15
|
+
"refactorai-core>=3.2.18",
|
|
16
16
|
]
|
|
17
17
|
|
|
18
18
|
[project.scripts]
|
|
@@ -489,22 +489,40 @@ def process_pending(
|
|
|
489
489
|
return reviewed
|
|
490
490
|
|
|
491
491
|
|
|
492
|
-
def
|
|
493
|
-
"""Non-blocking key read on
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
bare Escape, or ``""`` when nothing was pressed / the terminal is not
|
|
498
|
-
interactive. Sleeps ``timeout`` in the non-interactive case so the caller's
|
|
499
|
-
poll cadence is preserved.
|
|
500
|
-
"""
|
|
501
|
-
if not sys.stdin.isatty():
|
|
492
|
+
def _read_key_windows(timeout: float) -> str:
|
|
493
|
+
"""Non-blocking key read on Windows consoles (PowerShell/cmd/Terminal)."""
|
|
494
|
+
try:
|
|
495
|
+
import msvcrt
|
|
496
|
+
except ImportError:
|
|
502
497
|
time.sleep(timeout)
|
|
503
498
|
return ""
|
|
499
|
+
deadline = time.monotonic() + max(0.0, float(timeout))
|
|
500
|
+
while True:
|
|
501
|
+
if msvcrt.kbhit():
|
|
502
|
+
ch = msvcrt.getwch()
|
|
503
|
+
# Windows emits extended keys as a two-char sequence:
|
|
504
|
+
# prefix (\x00 or \xe0) + code (H/P/K/M etc).
|
|
505
|
+
if ch in ("\x00", "\xe0"):
|
|
506
|
+
code = msvcrt.getwch() if msvcrt.kbhit() else ""
|
|
507
|
+
if code == "H":
|
|
508
|
+
return "up"
|
|
509
|
+
if code == "P":
|
|
510
|
+
return "down"
|
|
511
|
+
return ""
|
|
512
|
+
if ch == "\x1b":
|
|
513
|
+
return "esc"
|
|
514
|
+
return ch
|
|
515
|
+
if time.monotonic() >= deadline:
|
|
516
|
+
return ""
|
|
517
|
+
time.sleep(0.01)
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
def _read_key_posix(timeout: float) -> str:
|
|
521
|
+
"""Non-blocking key read on a POSIX TTY, normalized to a token."""
|
|
504
522
|
try:
|
|
505
523
|
import termios
|
|
506
524
|
import tty
|
|
507
|
-
except ImportError:
|
|
525
|
+
except ImportError:
|
|
508
526
|
time.sleep(timeout)
|
|
509
527
|
return ""
|
|
510
528
|
fd = sys.stdin.fileno()
|
|
@@ -534,6 +552,16 @@ def _read_key(timeout: float) -> str:
|
|
|
534
552
|
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|
|
535
553
|
|
|
536
554
|
|
|
555
|
+
def _read_key(timeout: float) -> str:
|
|
556
|
+
"""Cross-platform non-blocking key read for ``refactor watch`` hotkeys."""
|
|
557
|
+
if not sys.stdin.isatty():
|
|
558
|
+
time.sleep(timeout)
|
|
559
|
+
return ""
|
|
560
|
+
if os.name == "nt":
|
|
561
|
+
return _read_key_windows(timeout)
|
|
562
|
+
return _read_key_posix(timeout)
|
|
563
|
+
|
|
564
|
+
|
|
537
565
|
def build_action_command(
|
|
538
566
|
action: str,
|
|
539
567
|
sha: str,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: refactorai-cli
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.6
|
|
4
4
|
Summary: Local-first CLI for the refactor platform
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -8,7 +8,7 @@ Requires-Dist: typer>=0.12.0
|
|
|
8
8
|
Requires-Dist: httpx>=0.27.0
|
|
9
9
|
Requires-Dist: rich>=13.7.0
|
|
10
10
|
Requires-Dist: PyYAML>=6.0.1
|
|
11
|
-
Requires-Dist: refactorai-core>=3.2.
|
|
11
|
+
Requires-Dist: refactorai-core>=3.2.18
|
|
12
12
|
|
|
13
13
|
# refactorai-cli
|
|
14
14
|
|
|
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
|