diff options
Diffstat (limited to 'crates/atuin-ai/src/stream.rs')
| -rw-r--r-- | crates/atuin-ai/src/stream.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/atuin-ai/src/stream.rs b/crates/atuin-ai/src/stream.rs index 19d287e7..e7155a08 100644 --- a/crates/atuin-ai/src/stream.rs +++ b/crates/atuin-ai/src/stream.rs @@ -100,6 +100,7 @@ pub(crate) fn create_chat_stream( client_ctx: ClientContext, send_cwd: bool, last_command: Option<String>, + user_contexts: Vec<crate::user_context::UserContext>, ) -> std::pin::Pin<Box<dyn futures::Stream<Item = Result<StreamFrame>> + Send>> { Box::pin(async_stream::stream! { ensure_crypto_provider(); @@ -115,10 +116,18 @@ pub(crate) fn create_chat_stream( let context = client_ctx.to_json(send_cwd, last_command.as_deref()); + let mut config = serde_json::json!({ + "capabilities": request.capabilities, + }); + + if !user_contexts.is_empty() { + config["user_contexts"] = serde_json::json!(user_contexts); + } + let mut request_body = serde_json::json!({ "messages": request.messages, "context": context, - "capabilities": request.capabilities, + "config": config, "invocation_id": request.invocation_id }); |
