Re-export ModelPolicyState and ModelPickerCategory from the crate root alongside Model/ModelPolicy
- Vorherrschende Sprache
- Java
- Sterne
- 10.5k
- Forks
- 1.5k
- Ø Merge
- 1 T. 11 Std.
- Gemergte PRs (30 T.)
- 128
Beschreibung
### Summary
The crate-root prelude (`pub use types::*`) surfaces a curated set of
generated protocol types, but omits two enums that are the field types
of structs already re-exported there. This makes the model-info surface
inconsistent: you can name the container struct at the crate root but
must reach through `copilot::rpc` for the enum that one of its fields
holds.
### Details
`types.rs` curates the public re-export block:
```rust
/// Re-exports of generated protocol types that are part of the SDK's
/// public API surface. ...
pub use crate::generated::api_types::{
Model, ModelBilling, ModelCapabilities, ModelCapabilitiesLimits, ModelCapabilitiesLimitsVision,
ModelCapabilitiesSupports, ModelList, ModelPolicy, PermissionDecision,
PermissionDecisionApproveOnce, PermissionDecisionReject, PermissionDecisionUserNotAvailable,
};
```
Two enums are missing from that list even though they are the declared
field types of structs that *are* in it:
- `ModelPolicy.state: ModelPolicyState` — `ModelPolicy` is re-exported; `ModelPolicyState` is not.
- `Model.model_picker_category: Option` — `Model` is re-exported; `ModelPickerCategory` is not.
### Consequence
A consumer that pattern-matches on `policy.state` or reads
`model.model_picker_category` can refer to `copilot::Model` /
`copilot::ModelPolicy` from the crate root, but has to import the field
enums from a different path:
```rust
use copilot::{Model, ModelPolicy}; // crate root
use copilot::rpc::{ModelPolicyState, ModelPickerCategory}; // only here
```
Because the curated list looks complete, it's easy to assume the whole
model-info surface lives at the crate root and be surprised these two
don't. It's a small ergonomics/consistency papercut, not a correctness
issue (both are reachable via `copilot::rpc`).
### Suggested fix
Add `ModelPolicyState` and `ModelPickerCategory` to the curated
`pub use crate::generated::api_types::{ ... }` block in `types.rs`, so
the full model-info type set is reachable from the crate root alongside
`Model` and `ModelPolicy`.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.