|
1 | 1 | from __future__ import annotations as _annotations |
2 | 2 |
|
| 3 | +import copy |
3 | 4 | import inspect |
4 | 5 | import json |
5 | 6 | import re |
@@ -411,9 +412,13 @@ def mode(self) -> OutputMode: |
411 | 412 |
|
412 | 413 | def dump(self) -> JsonSchema: |
413 | 414 | if self.toolset: |
414 | | - toolset_processors = [self.toolset.processors[k] for k in self.toolset.processors] |
415 | | - processors_union = UnionOutputProcessor(toolset_processors).object_def.json_schema |
416 | | - return processors_union |
| 415 | + processors = [] |
| 416 | + for tool_def in self.toolset._tool_defs: |
| 417 | + processor = copy.copy(self.toolset.processors[tool_def.name]) |
| 418 | + processor.object_def.name = tool_def.name |
| 419 | + processor.object_def.description = tool_def.description |
| 420 | + processors.append(processor) |
| 421 | + return UnionOutputProcessor(processors).object_def.json_schema |
417 | 422 | return self.processor.object_def.json_schema |
418 | 423 |
|
419 | 424 |
|
@@ -465,7 +470,7 @@ def __init__( |
465 | 470 | self.processor = processor |
466 | 471 |
|
467 | 472 | def dump(self) -> JsonSchema: |
468 | | - return self.object_def.json_schema # pyright: ignore[reportOptionalMemberAccess] |
| 473 | + return self.processor.object_def.json_schema |
469 | 474 |
|
470 | 475 |
|
471 | 476 | class NativeOutputSchema(StructuredTextOutputSchema[OutputDataT]): |
@@ -541,9 +546,13 @@ def mode(self) -> OutputMode: |
541 | 546 | return 'tool' |
542 | 547 |
|
543 | 548 | def dump(self) -> JsonSchema: |
544 | | - toolset_processors = [self.toolset.processors[k] for k in self.toolset.processors] # pyright: ignore[reportOptionalMemberAccess] |
545 | | - processors_union = UnionOutputProcessor(toolset_processors) |
546 | | - return processors_union.object_def.json_schema |
| 549 | + processors = [] |
| 550 | + for tool_def in self.toolset._tool_defs: |
| 551 | + processor = copy.copy(self.toolset.processors[tool_def.name]) |
| 552 | + processor.object_def.name = tool_def.name |
| 553 | + processor.object_def.description = tool_def.description |
| 554 | + processors.append(processor) |
| 555 | + return UnionOutputProcessor(processors).object_def.json_schema |
547 | 556 |
|
548 | 557 |
|
549 | 558 | class BaseOutputProcessor(ABC, Generic[OutputDataT]): |
|
0 commit comments