Files
plane-agentd/agentd/transports/__init__.py
T
jj.wang 9535122c99 Plane client, transports and executor adapters
Plane: paginated issue/comment/state/label/member access, one client per
terminal identity. Transports: local (setsid-detached runner) and warpgate-ssh
(win10-ps.sh / win10-put.sh relay, schtasks launch, taskkill on timeout).
Executors share a runner shape (prompt.md, exit.txt marker) with codex,
claude-code and shell adapters for last message and thread id.
2026-10-21 07:04:32 +00:00

25 lines
972 B
Python

"""Transports: how agentd reaches a terminal's machine (files, detached launch, kill).
Interface (duck-typed, see docs/executor-contract.md):
os, join(*parts), quote(s), default_run_root()
mkdir(path, clean=False), write_text(path, text), read_text(path) -> str|None,
grep_first(path, needle) -> str|None, tail(path, n) -> str
runner(run_dir, cwd, command, stdout_name) -> (script_name, script_text)
launch(task, script_path, run_dir), kill(task, run_dir), forget(task)
process_count(name) -> int|None (None = unreachable)"""
class TransportError(Exception):
pass
def make_transport(cfg, terminal):
kind = cfg.terminals[terminal]["transport"]
if kind == "local":
from .local import LocalTransport
return LocalTransport(cfg, terminal)
if kind == "warpgate-ssh":
from .warpgate_ssh import WarpgateSshTransport
return WarpgateSshTransport(cfg, terminal)
raise TransportError("unknown transport %s" % kind)