(
request: Either<String, SessionRequestOptions>,
history: Option<Vec<MessageObject>>,
)
| 815 | } |
| 816 | |
| 817 | fn session_request_parts( |
| 818 | request: Either<String, SessionRequestOptions>, |
| 819 | history: Option<Vec<MessageObject>>, |
| 820 | ) -> napi::Result<( |
| 821 | String, |
| 822 | Option<Vec<RustMessage>>, |
| 823 | Vec<a3s_code_core::llm::Attachment>, |
| 824 | )> { |
| 825 | match request { |
| 826 | Either::A(prompt) => { |
| 827 | let rust_history = history.map(|h| js_messages_to_rust(&h)).transpose()?; |
| 828 | Ok((prompt, rust_history, Vec::new())) |
| 829 | } |
| 830 | Either::B(request) => { |
| 831 | let rust_history = request |
| 832 | .history |
| 833 | .map(|h| js_messages_to_rust(&h)) |
| 834 | .transpose()?; |
| 835 | let rust_attachments = request |
| 836 | .attachments |
| 837 | .as_deref() |
| 838 | .map(js_attachments_to_rust) |
| 839 | .unwrap_or_default(); |
| 840 | Ok((request.prompt, rust_history, rust_attachments)) |
| 841 | } |
| 842 | } |
| 843 | } |
| 844 | |
| 845 | async fn send_session_request( |
| 846 | session: Arc<RustAgentSession>, |
no test coverage detected