warpgate-ssh: remote Linux/macOS terminals through the relay; oregon launched remotely
The dispatcher moves to an LXC without agent CLIs (design 9), so every terminal is reached through Warpgate. The relay call (agent-access.py run --target <t>) lives in one helper; the target comes from the terminal config. os linux/darwin (PosixWarpgateTransport): each primitive is one bash -c call. Files go up as base64 (chunked above 60k), start_run stages prompt.md + run.sh and launches in a single round trip; the runner is detached with setsid nohup (pid == pgid == sid, $! kept in launch.pid); kill signals the process group and session (TERM, then KILL), skipped once exit.txt exists. macOS detaches with perl POSIX::setsid. os windows keeps the win10-ps.sh / win10-put.sh helper scripts (target win10) and schtasks, now through the shared call() helper. oregon is now warpgate-ssh (target oregon, run_root ~/.gwent-board/agentd-runs); the local transport stays for co-located setups and tests.
This commit is contained in:
@@ -12,11 +12,11 @@ from agentd.config import Config
|
||||
from agentd.executors import Run, make_executor
|
||||
from agentd.store import Store
|
||||
from agentd.transports.local import LocalTransport
|
||||
from agentd.transports.warpgate_ssh import WarpgateSshTransport
|
||||
from agentd.transports.warpgate_ssh import PosixWarpgateTransport, WarpgateSshTransport, WindowsWarpgateTransport
|
||||
from tests.fakes import config_data
|
||||
|
||||
|
||||
class RecordingWin(WarpgateSshTransport):
|
||||
class RecordingWin(WindowsWarpgateTransport):
|
||||
"""Windows transport with the relay replaced by an in-memory recorder."""
|
||||
def __init__(self, cfg, terminal):
|
||||
super().__init__(cfg, terminal)
|
||||
@@ -95,7 +95,7 @@ class WindowsScriptTest(unittest.TestCase):
|
||||
|
||||
def fake_run(args, **kw):
|
||||
seen.update(kw["env"])
|
||||
return mock.Mock(returncode=0, stdout="X=ok", stderr="")
|
||||
return mock.Mock(returncode=0, stdout=b"X=ok", stderr=b"")
|
||||
with mock.patch.dict(os.environ, {"PLANE_WINDOW10_API_TOKEN": "s"}), \
|
||||
mock.patch("agentd.transports.warpgate_ssh.subprocess.run", fake_run):
|
||||
WarpgateSshTransport(self.cfg, "win10").ps("'X=ok'")
|
||||
|
||||
Reference in New Issue
Block a user