feat: Update OpenAI runners to implement Runner protocol returning RunnerResult#149
feat: Update OpenAI runners to implement Runner protocol returning RunnerResult#149jsonbailey wants to merge 1 commit intojb/aic-2388/managed-resultfrom
Conversation
bd4cd68 to
45441da
Compare
f1845b4 to
94f09ee
Compare
45441da to
27bcfc0
Compare
94f09ee to
8463109
Compare
27bcfc0 to
ff47ec2
Compare
eacddee to
842e4e6
Compare
2ea3384 to
369242d
Compare
842e4e6 to
4c95357
Compare
369242d to
b8d3fad
Compare
4c95357 to
3f6882c
Compare
b8d3fad to
4e28ae6
Compare
3f6882c to
efeea93
Compare
|
|
||
|
|
||
| class OpenAIAgentRunner(AgentRunner): | ||
| class OpenAIAgentRunner: |
There was a problem hiding this comment.
we should add the Runner protocol here vs stating it in the doc below
| @@ -14,10 +14,15 @@ | |||
|
|
|||
| class OpenAIModelRunner(ModelRunner): | |||
There was a problem hiding this comment.
This should be switched to the Runner protocol.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit efeea93. Configure here.
|
|
||
|
|
||
| class OpenAIAgentRunner(AgentRunner): | ||
| class OpenAIAgentRunner: |
There was a problem hiding this comment.
Classes don't inherit Runner protocol despite claiming implementation
Medium Severity
Both OpenAIAgentRunner and OpenAIModelRunner claim in their docstrings to implement the Runner protocol but don't actually inherit from it. This is inconsistent with OpenAIAgentGraphRunner in the same package which explicitly inherits from AgentGraphRunner. Without explicit inheritance, static type checkers cannot verify protocol conformance at definition time, and any future changes to the Runner protocol won't produce errors on these classes. The Runner protocol is imported and available in ldai.providers.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit efeea93. Configure here.
| self._model_name = model_name | ||
| self._parameters = parameters | ||
|
|
||
| async def invoke_model(self, messages: List[LDMessage]) -> ModelResponse: |
There was a problem hiding this comment.
Missing deprecated adapters breaks backward compatibility with callers
Medium Severity
The PR description states "Legacy invoke_model() and invoke_structured_model() retained as deprecated adapters that delegate to run() for backward compatibility," but these methods are completely absent from OpenAIModelRunner. The SDK's ManagedModel.invoke() calls self._model_runner.invoke_model() directly without an isinstance check, and Judge.evaluate() calls self._model_runner.invoke_structured_model(). If an OpenAIModelRunner instance is used through either of these existing code paths, it will raise AttributeError at runtime.
Reviewed by Cursor Bugbot for commit efeea93. Configure here.
330acf1 to
cd983aa
Compare
7352a34 to
adfd9f0
Compare
cd983aa to
184be64
Compare
adfd9f0 to
b4d15df
Compare
3556ba4 to
b5f15b7
Compare
b5f15b7 to
dc86b07
Compare
…nnerResult - OpenAIModelRunner.run() implements the unified Runner protocol; returns RunnerResult with content, metrics (LDAIMetrics), raw, and parsed fields. Structured output is supported via the output_type parameter. - OpenAIAgentRunner.run() updated to return RunnerResult; populates tool_calls in LDAIMetrics from observed openai-agents ToolCallItems. - Legacy invoke_model() and invoke_structured_model() retained as deprecated adapters that delegate to run() and wrap results into ModelResponse / StructuredResponse for backward compatibility. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
dc86b07 to
2ba8406
Compare


Summary
Stacking
Stacked on top of `jb/aic-2388/managed-result` (PR #148).
Test plan
🤖 Generated with Claude Code