Repository navigation
Commit 0e08ab5
fix(agents): prefer the importable function in a tool closure
openai-agents auto-updated to 0.22.3 (the dep is unpinned, >=0.12.2), whose
tool closure now holds two candidates: a nested _prepare_arguments(input,
tool_name) beside the user's function. _extract_from_closure returned the
first candidate whose leading parameter was not ctx/context, so it began
returning the framework's wrapper: FunctionRef.of rejected it as
unimportable (5 unit failures), and the serializer would have registered a
worker around it -- worse than finding nothing. main would fail identically
on a re-run.
Selection is now preference-ordered: importable by module + qualname wins.
That is exactly what FunctionRef.of requires, and it is a property of the
candidate rather than a guess from its parameter names. Closures holding
nothing importable fall back to the nested candidate, so those callers get
the same value and the same actionable SpawnSafetyError as before.
Adds TestClosureCandidatePreference, which builds the adverse closure
directly and runs without the extra installed -- the existing deep-extract
tests are importorskip'd and pin whatever internals happen to be installed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 99ad862 commit 0e08ab5
2 files changed
Lines changed: 94 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
70 | 87 | | |
71 | 88 | | |
72 | 89 | | |
73 | 90 | | |
74 | 91 | | |
75 | 92 | | |
76 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
77 | 106 | | |
78 | 107 | | |
79 | 108 | | |
80 | 109 | | |
81 | 110 | | |
| 111 | + | |
82 | 112 | | |
83 | 113 | | |
84 | 114 | | |
85 | 115 | | |
86 | 116 | | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
97 | 125 | | |
98 | | - | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
99 | 133 | | |
100 | 134 | | |
101 | 135 | | |
| |||
118 | 152 | | |
119 | 153 | | |
120 | 154 | | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
121 | 161 | | |
122 | 162 | | |
123 | 163 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
225 | 225 | | |
226 | 226 | | |
227 | 227 | | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
228 | 271 | | |
229 | 272 | | |
230 | 273 | | |
| |||
0 commit comments