MCPcopy Create free account
hub / github.com/aws/amazon-q-developer-cli / send_message

Method send_message

crates/chat-cli/src/cli/chat/mod.rs:1321–1346  ·  view source on GitHub ↗

Sends a request to the SendMessage API. Emits error telemetry on failure.

(
        &mut self,
        os: &mut Os,
        conversation_state: api_client::model::ConversationState,
        request_metadata_lock: Arc<Mutex<Option<RequestMetadata>>>,
        message_meta_tag

Source from the content-addressed store, hash-verified

1319impl ChatSession {
1320 /// Sends a request to the SendMessage API. Emits error telemetry on failure.
1321 async fn send_message(
1322 &mut self,
1323 os: &mut Os,
1324 conversation_state: api_client::model::ConversationState,
1325 request_metadata_lock: Arc<Mutex<Option<RequestMetadata>>>,
1326 message_meta_tags: Option<Vec<MessageMetaTag>>,
1327 ) -> Result<SendMessageStream, ChatError> {
1328 match SendMessageStream::send_message(&os.client, conversation_state, request_metadata_lock, message_meta_tags)
1329 .await
1330 {
1331 Ok(res) => Ok(res),
1332 Err(err) => {
1333 let (reason, reason_desc) = get_error_reason(&err);
1334 self.send_chat_telemetry(
1335 os,
1336 TelemetryResult::Failed,
1337 Some(reason),
1338 Some(reason_desc),
1339 err.status_code(),
1340 true, // We never retry failed requests, so this always ends the current turn.
1341 )
1342 .await;
1343 Err(err.into())
1344 },
1345 }
1346 }
1347
1348 async fn spawn(&mut self, os: &mut Os) -> Result<()> {
1349 let is_small_screen = self.terminal_width() < GREETING_BREAK_POINT;

Callers 3

compact_history_implMethod · 0.45
handle_responseMethod · 0.45

Calls 3

get_error_reasonFunction · 0.85
send_chat_telemetryMethod · 0.80
status_codeMethod · 0.45

Tested by

no test coverage detected