github / github/copilot-sdk

Re-export ModelPolicyState and ModelPickerCategory from the crate root alongside Model/ModelPolicy

Ouverte
#1,674 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Java
Étoiles
10.5k
Forks
1.5k
Merge moyen
1 j 11 h
PR mergées (30 j)
128

Description

### 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`.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.