commit 9cb60b3dc2661f3ee6ee379bcf8560e198b3e7e9
parent f3a58da0d25da346e2a0be8fdde466d3d83879cf
Author: andrewlaack-collab <andrew.laack@imbue.com>
Date: Thu, 26 Feb 2026 10:12:56 -0600
Support longer diffs with codex (#157)
* Support longer diffs with codex
* Undo error tracking changes
---------
Co-authored-by: Andrew Laack <andrew@laack.co>
Diffstat:
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/vet/imbue_core/agents/agent_api/codex/client.py b/vet/imbue_core/agents/agent_api/codex/client.py
@@ -47,9 +47,9 @@ class CodexClient(RealAgentClient[CodexOptions]):
options = self._options.model_copy(update={"resume_session_id": self._session_id})
cmd = self._build_cli_cmd(options)
with AgentSubprocessCLITransport.build(
- AgentSubprocessCLITransportOptions(cmd=[*cmd, prompt], cwd=options.cwd)
+ AgentSubprocessCLITransportOptions(cmd=[*cmd, "-"], cwd=options.cwd)
) as transport:
- transport.send_request([prompt], options)
+ transport.write_stdin(prompt)
thread_id: str | None = None
for data in transport.receive_messages():
diff --git a/vet/imbue_core/agents/agent_api/transport.py b/vet/imbue_core/agents/agent_api/transport.py
@@ -118,6 +118,16 @@ class AgentSubprocessCLITransport(AgentTransport[AgentSubprocessCLITransportOpti
stdin_stream.write(json.dumps(message) + "\n")
stdin_stream.flush()
+ def write_stdin(self, text: str) -> None:
+ stdin_stream = self._stdin_stream
+ if not self._process or not stdin_stream:
+ raise AgentCLIConnectionError("Not connected")
+
+ stdin_stream.write(text)
+ stdin_stream.flush()
+ stdin_stream.close()
+ self._stdin_stream = None
+
def _read_stderr(self, output_buffer: list[str]) -> None:
"""Read stderr in background."""
stderr_stream = self._stderr_stream