feat(artifact-presenter): open text files in Orca

This commit is contained in:
jb
2026-09-02 21:07:07 -04:00
parent 9e1d59fdee
commit a11ca1743c
4 changed files with 155 additions and 14 deletions
@@ -120,6 +120,22 @@ class FakeRunner:
return subprocess.CompletedProcess(argv, 0, json.dumps(output), "")
class OrcaAwareRunner(FakeRunner):
def __init__(self, *args, fail_orca_open: bool = False, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.fail_orca_open = fail_orca_open
def __call__(self, command, **kwargs):
argv = [str(value) for value in command]
if argv[1:3] == ["file", "open"]:
self.calls.append(argv)
if self.fail_orca_open:
raise subprocess.CalledProcessError(1, argv)
output = {"ok": True, "result": {"opened": True}}
return subprocess.CompletedProcess(argv, 0, json.dumps(output), "")
return super().__call__(command, **kwargs)
class ArtifactPresenterTests(unittest.TestCase):
def setUp(self) -> None:
self.tempdir = tempfile.TemporaryDirectory()
@@ -132,6 +148,7 @@ class ArtifactPresenterTests(unittest.TestCase):
self.executables = {
"herdr": "/usr/bin/herdr",
"mcat": "/usr/bin/mcat",
"orca": "/usr/bin/orca",
}
def tearDown(self) -> None:
@@ -381,21 +398,71 @@ class ArtifactPresenterTests(unittest.TestCase):
)
self.assertFalse(any(call[1:3] == ["pane", "split"] for call in runner.calls))
def test_presents_non_markdown_file_directly_with_mcat(self) -> None:
video = self.artifact.with_name("review.mp4")
video.write_bytes(b"video fixture")
runner = FakeRunner(
def test_opens_editor_friendly_file_in_orca_managed_session(self) -> None:
source = self.artifact.with_name("module.ts")
source.write_text("export const answer = 42;\n", encoding="utf-8")
runner = OrcaAwareRunner()
result = MODULE.present_document(
source,
env={**self.env, "ORCA_WORKSPACE_ID": "workspace"},
which=self.which,
run=runner,
)
self.assertEqual(result.status, "orca-opened")
self.assertEqual(
runner.calls,
[["/usr/bin/orca", "file", "open", str(source.resolve()), "--json"]],
)
def test_uses_configured_orca_cli_command(self) -> None:
self.executables["orca-wsl"] = "/opt/orca/orca-wsl"
runner = OrcaAwareRunner()
result = MODULE.present_document(
self.artifact,
env={"TERM_PROGRAM": "Orca", "ORCA_CLI_COMMAND": "orca-wsl"},
which=self.which,
run=runner,
)
self.assertEqual(result.status, "orca-opened")
self.assertEqual(runner.calls[0][0], "/opt/orca/orca-wsl")
def test_falls_back_to_mcat_when_orca_cannot_open_text_file(self) -> None:
runner = OrcaAwareRunner(
[{"pane_id": "workspace:p-viewer", "label": MODULE.PANE_LABEL}],
fail_orca_open=True,
)
result = MODULE.present_document(
video,
env=self.env,
self.artifact,
env={**self.env, "ORCA_TERMINAL_HANDLE": "term-1"},
which=self.which,
run=runner,
)
self.assertEqual(result.status, "reused")
self.assertEqual(runner.calls[0][1:3], ["file", "open"])
self.mcat_run_call(runner, "workspace:p-viewer")
def test_presents_binary_file_directly_with_mcat_in_orca_session(self) -> None:
video = self.artifact.with_name("review.mp4")
video.write_bytes(b"video\0fixture")
runner = OrcaAwareRunner(
[{"pane_id": "workspace:p-viewer", "label": MODULE.PANE_LABEL}],
)
result = MODULE.present_document(
video,
env={**self.env, "TERM_PROGRAM": "Orca"},
which=self.which,
run=runner,
)
self.assertEqual(result.status, "reused")
self.assertFalse(any(call[1:3] == ["file", "open"] for call in runner.calls))
self.mcat_run_call(runner, "workspace:p-viewer", video)
def test_encodes_artifact_paths_before_terminal_delivery(self) -> None: