chore: import upstream snapshot with attribution
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
CI (OpenClaw E2E) / openclaw test (push) Has been cancelled
CI / coverage-report (push) Has been cancelled
CI / test-kubernetes (push) Has been cancelled
CI / should-run-thorough (push) Has been cancelled
CI / test-thorough (cloudwatch-demo) (push) Has been cancelled
CI / test-thorough (flink-ecs) (push) Has been cancelled
CI / test-thorough (upstream-lambda) (push) Has been cancelled
CI / test-thorough (prefect-ecs-fargate) (push) Has been cancelled
Release / build-binaries (zip, opensre.exe, onefile, windows-latest, windows-x64) (push) Has been cancelled
Benchmark image — build + push to ECR (any adapter) / build + push (push) Has been cancelled
CI / quality (ubuntu-latest) (push) Has been cancelled
CI / test (tools-runtime) (push) Has been cancelled
CI / test (e2e-general) (push) Has been cancelled
CI / test (cli-runtime) (push) Has been cancelled
CI / test (e2e-provider-and-openclaw) (push) Has been cancelled
CI / test (integrations-and-misc) (push) Has been cancelled
Release / verify (push) Has been cancelled
Release / build-python-dist (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-15-intel, darwin-x64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, macos-latest, darwin-arm64) (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04, linux-x64) (push) Has been cancelled
Release / publish-release (push) Has been cancelled
Release / publish-main-release (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-checks (no-LLM) (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Interactive Shell Live (PR + post-merge) / turn-live shard ${{ matrix.shard_index }} (push) Has been cancelled
Release / prepare (push) Has been cancelled
Release / build-binaries (tar.gz, opensre, onedir, ubuntu-22.04-arm, linux-arm64) (push) Has been cancelled
Synthetic Deterministic Tests / Synthetic offline (deterministic) (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,132 @@
|
||||
"""Execute planned opensre CLI actions.
|
||||
|
||||
Pure subprocess execution, planning, and orchestration for shell / synthetic /
|
||||
Claude Code / opensre CLI action tools live under ``tools.interactive_shell``
|
||||
(``subprocess/``, ``shell/``, ``synthetic/``, ``implementation/``, ``cli/``).
|
||||
This package keeps Rich relay helpers in ``task_streaming``, the REPL presenter
|
||||
in ``repl_presenter``, and backward-compatible surface adapters such as
|
||||
``opensre_cli_runner`` for slash parity and legacy test monkeypatch paths.
|
||||
|
||||
Shell command execution lives in ``tools.interactive_shell.shell`` (parsing,
|
||||
policy, ``execute_shell_command``, and the ``run_shell_command`` / ``run_cd`` /
|
||||
``run_pwd`` runner); it is intentionally not re-exported here. Synthetic test
|
||||
execution lives in ``tools.interactive_shell.synthetic`` (the
|
||||
``run_synthetic_test`` / ``watch_synthetic_subprocess`` runner), Claude Code
|
||||
implementation execution lives in ``tools.interactive_shell.implementation.claude_code_executor``
|
||||
(``run_claude_code_implementation``), and sample-alert / free-text investigation
|
||||
execution lives in ``tools.interactive_shell.actions.sample_alert`` /
|
||||
``tools.interactive_shell.actions.investigation`` (``run_sample_alert`` /
|
||||
``run_text_investigation``); none are re-exported here. Shared stdlib subprocess
|
||||
primitives live in ``tools.interactive_shell.subprocess``; Rich stream relay
|
||||
remains in ``task_streaming``.
|
||||
|
||||
Public API is stable: all names exported below are importable directly from
|
||||
``subprocess_runner`` and will remain so regardless of internal submodule changes.
|
||||
|
||||
Stdlib modules ``os``, ``subprocess``, and ``threading`` are re-imported here so
|
||||
that tests can patch them via the full ``subprocess_runner.<module>.<attr>`` path
|
||||
(e.g. ``subprocess_runner.subprocess.Popen``). Since these are module singletons in
|
||||
``sys.modules``, patching via this attribute also affects the actual call sites
|
||||
inside the submodules.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
# Stdlib singletons — imported so that monkeypatch paths resolve correctly in tests:
|
||||
# ``"…subprocess_runner.os.chdir"``, ``"…subprocess_runner.subprocess.Popen"``,
|
||||
# ``"…subprocess_runner.threading.Thread"``, ``"…subprocess_runner.time.sleep"``,
|
||||
# ``"…subprocess_runner.Path.cwd"``.
|
||||
import os
|
||||
import subprocess
|
||||
import threading
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
from .background_task_executor import start_background_cli_task
|
||||
from .opensre_cli_runner import (
|
||||
_INTERACTIVE_OPENSRE_COMMAND_PATHS,
|
||||
_OPENSRE_BLOCKED_SUBCOMMANDS,
|
||||
OpensreCommandClass,
|
||||
OpensreExecutionMode,
|
||||
OpensreExecutionPlan,
|
||||
OpensreRunOutcome,
|
||||
OpensreRunResult,
|
||||
_build_opensre_execution_plan,
|
||||
_classify_opensre_command,
|
||||
_is_interactive_wizard,
|
||||
_opensre_confirmation_reason,
|
||||
_run_opensre_foreground,
|
||||
_run_opensre_foreground_streaming,
|
||||
build_opensre_cli_argv,
|
||||
print_interactive_wizard_handoff,
|
||||
run_opensre_cli_command,
|
||||
run_opensre_cli_command_result,
|
||||
)
|
||||
from .task_streaming import (
|
||||
_MAX_COMMAND_OUTPUT_CHARS,
|
||||
_MIN_SUBPROCESS_TERMINAL_WIDTH,
|
||||
_SYNTHETIC_DIAG_CHARS,
|
||||
_SYNTHETIC_POLL_SECONDS,
|
||||
_TASK_OUTPUT_JOIN_TIMEOUT_SECONDS,
|
||||
_TASK_OUTPUT_PREFIX_WIDTH,
|
||||
CLAUDE_CODE_IMPLEMENTATION_TIMEOUT_SECONDS,
|
||||
SHELL_COMMAND_TIMEOUT_SECONDS,
|
||||
SYNTHETIC_TEST_TIMEOUT_SECONDS,
|
||||
_console_file_is_tty,
|
||||
_join_task_output_streams,
|
||||
_print_task_output_line,
|
||||
_pump_task_pty,
|
||||
_pump_task_stream,
|
||||
_should_use_pty,
|
||||
_start_task_output_streams,
|
||||
_subprocess_env_with_aligned_width,
|
||||
read_diag,
|
||||
read_task_output,
|
||||
terminate_child_process,
|
||||
)
|
||||
|
||||
__all__ = [
|
||||
"CLAUDE_CODE_IMPLEMENTATION_TIMEOUT_SECONDS",
|
||||
"SHELL_COMMAND_TIMEOUT_SECONDS",
|
||||
"SYNTHETIC_TEST_TIMEOUT_SECONDS",
|
||||
"OpensreCommandClass",
|
||||
"OpensreExecutionMode",
|
||||
"OpensreExecutionPlan",
|
||||
"OpensreRunOutcome",
|
||||
"OpensreRunResult",
|
||||
"Path",
|
||||
"_INTERACTIVE_OPENSRE_COMMAND_PATHS",
|
||||
"_MAX_COMMAND_OUTPUT_CHARS",
|
||||
"_MIN_SUBPROCESS_TERMINAL_WIDTH",
|
||||
"_OPENSRE_BLOCKED_SUBCOMMANDS",
|
||||
"_SYNTHETIC_DIAG_CHARS",
|
||||
"_SYNTHETIC_POLL_SECONDS",
|
||||
"_TASK_OUTPUT_JOIN_TIMEOUT_SECONDS",
|
||||
"_TASK_OUTPUT_PREFIX_WIDTH",
|
||||
"_classify_opensre_command",
|
||||
"_build_opensre_execution_plan",
|
||||
"_console_file_is_tty",
|
||||
"_is_interactive_wizard",
|
||||
"_join_task_output_streams",
|
||||
"_opensre_confirmation_reason",
|
||||
"_print_task_output_line",
|
||||
"_pump_task_pty",
|
||||
"_pump_task_stream",
|
||||
"_run_opensre_foreground",
|
||||
"_run_opensre_foreground_streaming",
|
||||
"_should_use_pty",
|
||||
"_start_task_output_streams",
|
||||
"_subprocess_env_with_aligned_width",
|
||||
"build_opensre_cli_argv",
|
||||
"os",
|
||||
"print_interactive_wizard_handoff",
|
||||
"read_diag",
|
||||
"read_task_output",
|
||||
"run_opensre_cli_command",
|
||||
"run_opensre_cli_command_result",
|
||||
"start_background_cli_task",
|
||||
"subprocess",
|
||||
"terminate_child_process",
|
||||
"threading",
|
||||
"time",
|
||||
]
|
||||
Reference in New Issue
Block a user