|
53 | 53 | _system_message_for_mode, |
54 | 54 | _validate_tool_filter_list, |
55 | 55 | ) |
| 56 | +from ._model_capabilities import ( |
| 57 | + ModelCapabilitiesOverride, |
| 58 | + ModelLimitsOverride, # noqa: F401 |
| 59 | + ModelSupportsOverride, # noqa: F401 |
| 60 | + ModelVisionLimitsOverride, # noqa: F401 |
| 61 | +) |
| 62 | +from ._model_capabilities import ( |
| 63 | + capabilities_to_dict as _capabilities_to_dict, |
| 64 | +) |
| 65 | +from ._reset import ResetSessionResult |
56 | 66 | from ._sdk_protocol_version import get_sdk_protocol_version |
57 | 67 | from ._telemetry import get_trace_context |
58 | 68 | from .canvas import ( |
|
90 | 100 | ProviderConfig, |
91 | 101 | ReasoningEffort, |
92 | 102 | ReasoningSummary, |
93 | | - ResetSessionResult, |
94 | 103 | SectionTransformFn, |
95 | 104 | SessionFsConfig, |
96 | 105 | SessionHooks, |
@@ -583,66 +592,6 @@ def to_dict(self) -> dict: |
583 | 592 | return result |
584 | 593 |
|
585 | 594 |
|
586 | | -@dataclass |
587 | | -class ModelVisionLimitsOverride: |
588 | | - supported_media_types: list[str] | None = None |
589 | | - max_prompt_images: int | None = None |
590 | | - max_prompt_image_size: int | None = None |
591 | | - |
592 | | - |
593 | | -@dataclass |
594 | | -class ModelLimitsOverride: |
595 | | - max_prompt_tokens: int | None = None |
596 | | - max_output_tokens: int | None = None |
597 | | - max_context_window_tokens: int | None = None |
598 | | - vision: ModelVisionLimitsOverride | None = None |
599 | | - |
600 | | - |
601 | | -@dataclass |
602 | | -class ModelSupportsOverride: |
603 | | - vision: bool | None = None |
604 | | - reasoning_effort: bool | None = None |
605 | | - |
606 | | - |
607 | | -@dataclass |
608 | | -class ModelCapabilitiesOverride: |
609 | | - supports: ModelSupportsOverride | None = None |
610 | | - limits: ModelLimitsOverride | None = None |
611 | | - |
612 | | - |
613 | | -def _capabilities_to_dict(caps: ModelCapabilitiesOverride) -> dict: |
614 | | - result: dict = {} |
615 | | - if caps.supports is not None: |
616 | | - s: dict = {} |
617 | | - if caps.supports.vision is not None: |
618 | | - s["vision"] = caps.supports.vision |
619 | | - if caps.supports.reasoning_effort is not None: |
620 | | - s["reasoningEffort"] = caps.supports.reasoning_effort |
621 | | - if s: |
622 | | - result["supports"] = s |
623 | | - if caps.limits is not None: |
624 | | - lim: dict = {} |
625 | | - if caps.limits.max_prompt_tokens is not None: |
626 | | - lim["max_prompt_tokens"] = caps.limits.max_prompt_tokens |
627 | | - if caps.limits.max_output_tokens is not None: |
628 | | - lim["max_output_tokens"] = caps.limits.max_output_tokens |
629 | | - if caps.limits.max_context_window_tokens is not None: |
630 | | - lim["max_context_window_tokens"] = caps.limits.max_context_window_tokens |
631 | | - if caps.limits.vision is not None: |
632 | | - v: dict = {} |
633 | | - if caps.limits.vision.supported_media_types is not None: |
634 | | - v["supported_media_types"] = caps.limits.vision.supported_media_types |
635 | | - if caps.limits.vision.max_prompt_images is not None: |
636 | | - v["max_prompt_images"] = caps.limits.vision.max_prompt_images |
637 | | - if caps.limits.vision.max_prompt_image_size is not None: |
638 | | - v["max_prompt_image_size"] = caps.limits.vision.max_prompt_image_size |
639 | | - if v: |
640 | | - lim["vision"] = v |
641 | | - if lim: |
642 | | - result["limits"] = lim |
643 | | - return result |
644 | | - |
645 | | - |
646 | 595 | @dataclass |
647 | 596 | class ModelPolicy: |
648 | 597 | """Model policy state""" |
|
0 commit comments