Relocate the AI chat layer (chat_provider.rs, chat_models.rs, agent_settings_state.rs) out of openpencil-shell-core into a dedicated op-ai crate. These three modules are dependency-free transport-free data shapes — the ChatProvider trait, the ModelEntry catalog type, and the Cmd+, settings-modal state — so they form a clean wasm32-clean leaf crate. A fresh lib.rs declares all three as modules; chat_models' `crate::agent_settings_state::` path stays valid. openpencil-desktop's chat_*.rs transports + model_discovery.rs now import `op_ai::*`. Pure relocation, no behaviour change. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||