Kayshen-X
62c5f02f0a
refactor(editor): migrate AIChat panel onto op-editor-core chat state
`AIChatPlaceholder` + the model-picker dropdown now read op-editor-core
types directly:
- `ChatState` / `ChatRole` / `ChatMessage` / `ModelEntry` /
`AgentProvider` swap from shell-core (`document::*` /
`chat_models::*` / `agent_settings_state::*`) to
`op_editor_core::chat::*`.
- `AIChatPlaceholder::from_editor[_at]` takes `&EditorState`, reading
`state.chat` + resolving chrome labels through `editor_state_ext`'s
`translate` / `theme_for` instead of `Document::t` / `Document::theme`.
Both hosts' paint + click + press call sites feed `&EditorState`. The
desktop model-discovery worker keeps emitting shell-core `ModelEntry`s,
already translated to op-editor-core's at the `editor_state.chat`
write boundary in `model_discovery.rs` — no change needed there.