1#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct StreamChatRequest {
5 #[prost(string, tag = "1")]
7 pub conversation_rid: ::prost::alloc::string::String,
8 #[prost(message, optional, tag = "2")]
10 pub message: ::core::option::Option<UserModelMessage>,
11 #[prost(message, repeated, tag = "3")]
13 pub images: ::prost::alloc::vec::Vec<ImagePart>,
14 #[prost(oneof = "stream_chat_request::Context", tags = "4, 5")]
16 pub context: ::core::option::Option<stream_chat_request::Context>,
17}
18pub mod stream_chat_request {
20 #[derive(Clone, PartialEq, ::prost::Oneof)]
22 pub enum Context {
23 #[prost(message, tag = "4")]
24 Workbook(super::WorkbookContext),
25 #[prost(message, tag = "5")]
26 Global(super::GlobalContext),
27 }
28}
29#[derive(Clone, PartialEq, ::prost::Message)]
31pub struct WorkbookContext {
32 #[prost(string, tag = "1")]
34 pub workbook_rid: ::prost::alloc::string::String,
35 #[prost(message, optional, tag = "2")]
37 pub user_presence: ::core::option::Option<WorkbookUserPresence>,
38}
39#[derive(Clone, Copy, PartialEq, ::prost::Message)]
41pub struct GlobalContext {}
42#[derive(Clone, Copy, PartialEq, ::prost::Message)]
45pub struct WorkbookUserPresence {
46 #[prost(int32, optional, tag = "1")]
47 pub tab_index: ::core::option::Option<i32>,
48 #[prost(message, optional, tag = "2")]
49 pub range: ::core::option::Option<TimeRange>,
50}
51#[derive(Clone, PartialEq, ::prost::Message)]
57pub struct CreateConversationRequest {
58 #[prost(string, tag = "1")]
59 pub title: ::prost::alloc::string::String,
60 #[prost(string, tag = "2")]
61 pub workspace_rid: ::prost::alloc::string::String,
62 #[prost(string, optional, tag = "3")]
63 pub old_conversation_rid: ::core::option::Option<::prost::alloc::string::String>,
64 #[prost(string, optional, tag = "4")]
65 pub previous_message_id: ::core::option::Option<::prost::alloc::string::String>,
66}
67#[derive(Clone, PartialEq, ::prost::Message)]
69pub struct CreateConversationResponse {
70 #[prost(string, tag = "1")]
71 pub new_conversation_rid: ::prost::alloc::string::String,
72}
73#[derive(Clone, PartialEq, ::prost::Message)]
74pub struct UpdateConversationMetadataRequest {
75 #[prost(string, tag = "1")]
76 pub title: ::prost::alloc::string::String,
77 #[prost(string, tag = "2")]
78 pub conversation_rid: ::prost::alloc::string::String,
79}
80#[derive(Clone, Copy, PartialEq, ::prost::Message)]
81pub struct UpdateConversationMetadataResponse {}
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct DeleteConversationRequest {
84 #[prost(string, tag = "1")]
85 pub conversation_rid: ::prost::alloc::string::String,
86}
87#[derive(Clone, Copy, PartialEq, ::prost::Message)]
88pub struct DeleteConversationResponse {}
89#[derive(Clone, PartialEq, ::prost::Message)]
92pub struct GetConversationRequest {
93 #[prost(string, tag = "1")]
94 pub conversation_rid: ::prost::alloc::string::String,
95 #[prost(string, optional, tag = "2")]
96 pub page_start_message_id: ::core::option::Option<::prost::alloc::string::String>,
97 #[prost(int32, optional, tag = "3")]
98 pub max_message_count: ::core::option::Option<i32>,
99}
100#[derive(Clone, PartialEq, ::prost::Message)]
102pub struct ModelMessageWithId {
103 #[prost(string, tag = "3")]
104 pub message_id: ::prost::alloc::string::String,
105 #[prost(oneof = "model_message_with_id::Content", tags = "1, 2")]
106 pub content: ::core::option::Option<model_message_with_id::Content>,
107}
108pub mod model_message_with_id {
110 #[derive(Clone, PartialEq, ::prost::Oneof)]
111 pub enum Content {
112 #[prost(message, tag = "1")]
113 Message(super::ModelMessage),
114 #[prost(message, tag = "2")]
115 ToolAction(super::ToolAction),
116 }
117}
118#[derive(Clone, PartialEq, ::prost::Message)]
119pub struct GetConversationResponse {
120 #[prost(message, repeated, tag = "1")]
121 pub ordered_messages: ::prost::alloc::vec::Vec<ModelMessageWithId>,
122 #[prost(message, optional, tag = "2")]
123 pub conversation_metadata: ::core::option::Option<ConversationMetadata>,
124}
125#[derive(Clone, PartialEq, ::prost::Message)]
127pub struct ListConversationsRequest {
128 #[prost(string, tag = "1")]
129 pub workspace_rid: ::prost::alloc::string::String,
130}
131#[derive(Clone, PartialEq, ::prost::Message)]
132pub struct ConversationMetadata {
133 #[prost(string, tag = "1")]
134 pub conversation_rid: ::prost::alloc::string::String,
135 #[prost(string, tag = "2")]
136 pub title: ::prost::alloc::string::String,
137 #[prost(message, optional, tag = "3")]
138 pub created_at: ::core::option::Option<
139 super::super::super::google::protobuf::Timestamp,
140 >,
141 #[prost(message, optional, tag = "4")]
142 pub last_updated_at: ::core::option::Option<
143 super::super::super::google::protobuf::Timestamp,
144 >,
145}
146#[derive(Clone, PartialEq, ::prost::Message)]
149pub struct ListConversationsResponse {
150 #[prost(message, repeated, tag = "1")]
151 pub conversations: ::prost::alloc::vec::Vec<ConversationMetadata>,
152}
153#[derive(Clone, Copy, PartialEq, ::prost::Message)]
154pub struct TimeRange {
155 #[prost(message, optional, tag = "1")]
156 pub range_start: ::core::option::Option<Timestamp>,
157 #[prost(message, optional, tag = "2")]
158 pub range_end: ::core::option::Option<Timestamp>,
159}
160#[derive(Clone, Copy, PartialEq, ::prost::Message)]
161pub struct Timestamp {
162 #[prost(int32, tag = "1")]
163 pub seconds: i32,
164 #[prost(int32, tag = "2")]
165 pub nanoseconds: i32,
166}
167#[derive(Clone, PartialEq, ::prost::Message)]
170pub struct ModelMessage {
171 #[prost(oneof = "model_message::Kind", tags = "1, 2")]
172 pub kind: ::core::option::Option<model_message::Kind>,
173}
174pub mod model_message {
176 #[derive(Clone, PartialEq, ::prost::Oneof)]
177 pub enum Kind {
178 #[prost(message, tag = "1")]
179 User(super::UserModelMessage),
180 #[prost(message, tag = "2")]
181 Assistant(super::AssistantModelMessage),
182 }
183}
184#[derive(Clone, PartialEq, ::prost::Message)]
186pub struct UserModelMessage {
187 #[prost(message, repeated, tag = "1")]
188 pub text: ::prost::alloc::vec::Vec<UserContentPart>,
189}
190#[derive(Clone, PartialEq, ::prost::Message)]
192pub struct AssistantModelMessage {
193 #[prost(message, repeated, tag = "1")]
194 pub content_parts: ::prost::alloc::vec::Vec<AssistantContentPart>,
195}
196#[derive(Clone, PartialEq, ::prost::Message)]
197pub struct UserContentPart {
198 #[prost(oneof = "user_content_part::Part", tags = "1")]
199 pub part: ::core::option::Option<user_content_part::Part>,
200}
201pub mod user_content_part {
203 #[derive(Clone, PartialEq, ::prost::Oneof)]
204 pub enum Part {
205 #[prost(message, tag = "1")]
206 Text(super::TextPart),
207 }
208}
209#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct AssistantContentPart {
212 #[prost(oneof = "assistant_content_part::Part", tags = "1, 2")]
213 pub part: ::core::option::Option<assistant_content_part::Part>,
214}
215pub mod assistant_content_part {
217 #[derive(Clone, PartialEq, ::prost::Oneof)]
218 pub enum Part {
219 #[prost(message, tag = "1")]
220 Text(super::TextPart),
221 #[prost(message, tag = "2")]
222 Reasoning(super::ReasoningPart),
223 }
224}
225#[derive(Clone, PartialEq, ::prost::Message)]
227pub struct TextPart {
228 #[prost(string, tag = "1")]
229 pub text: ::prost::alloc::string::String,
230}
231#[derive(Clone, PartialEq, ::prost::Message)]
233pub struct ImagePart {
234 #[prost(bytes = "vec", tag = "1")]
236 pub data: ::prost::alloc::vec::Vec<u8>,
237 #[prost(string, optional, tag = "2")]
239 pub media_type: ::core::option::Option<::prost::alloc::string::String>,
240 #[prost(string, optional, tag = "3")]
242 pub filename: ::core::option::Option<::prost::alloc::string::String>,
243}
244#[derive(Clone, PartialEq, ::prost::Message)]
246pub struct ReasoningPart {
247 #[prost(string, tag = "1")]
248 pub reasoning: ::prost::alloc::string::String,
249}
250#[derive(Clone, PartialEq, ::prost::Message)]
252pub struct StreamChatResponse {
253 #[prost(
254 oneof = "stream_chat_response::Response",
255 tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10"
256 )]
257 pub response: ::core::option::Option<stream_chat_response::Response>,
258}
259pub mod stream_chat_response {
261 #[derive(Clone, PartialEq, ::prost::Oneof)]
262 pub enum Response {
263 #[prost(message, tag = "1")]
264 Finish(super::Finish),
265 #[prost(message, tag = "2")]
266 Error(super::Error),
267 #[prost(message, tag = "3")]
268 TextStart(super::TextStart),
269 #[prost(message, tag = "4")]
270 TextDelta(super::TextDelta),
271 #[prost(message, tag = "5")]
272 TextEnd(super::TextEnd),
273 #[prost(message, tag = "6")]
274 ReasoningStart(super::ReasoningStart),
275 #[prost(message, tag = "7")]
276 ReasoningDelta(super::ReasoningDelta),
277 #[prost(message, tag = "8")]
278 ReasoningEnd(super::ReasoningEnd),
279 #[prost(message, tag = "9")]
281 WorkbookMutation(super::WorkbookMutation),
282 #[prost(message, tag = "10")]
283 ToolAction(super::ToolAction),
284 }
285}
286#[derive(Clone, PartialEq, ::prost::Message)]
288pub struct Finish {
289 #[prost(string, repeated, tag = "1")]
292 pub ordered_message_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
293 #[prost(string, optional, tag = "2")]
296 pub new_title: ::core::option::Option<::prost::alloc::string::String>,
297}
298#[derive(Clone, PartialEq, ::prost::Message)]
300pub struct Error {
301 #[prost(string, tag = "1")]
302 pub message: ::prost::alloc::string::String,
303}
304#[derive(Clone, PartialEq, ::prost::Message)]
306pub struct TextStart {
307 #[prost(string, tag = "1")]
310 pub id: ::prost::alloc::string::String,
311}
312#[derive(Clone, PartialEq, ::prost::Message)]
314pub struct TextDelta {
315 #[prost(string, tag = "1")]
316 pub id: ::prost::alloc::string::String,
317 #[prost(string, tag = "2")]
319 pub delta: ::prost::alloc::string::String,
320}
321#[derive(Clone, PartialEq, ::prost::Message)]
323pub struct TextEnd {
324 #[prost(string, tag = "1")]
325 pub id: ::prost::alloc::string::String,
326}
327#[derive(Clone, PartialEq, ::prost::Message)]
329pub struct ReasoningStart {
330 #[prost(string, tag = "1")]
331 pub id: ::prost::alloc::string::String,
332}
333#[derive(Clone, PartialEq, ::prost::Message)]
335pub struct ReasoningDelta {
336 #[prost(string, tag = "1")]
337 pub id: ::prost::alloc::string::String,
338 #[prost(string, tag = "2")]
340 pub delta: ::prost::alloc::string::String,
341}
342#[derive(Clone, PartialEq, ::prost::Message)]
344pub struct ReasoningEnd {
345 #[prost(string, tag = "1")]
346 pub id: ::prost::alloc::string::String,
347}
348#[derive(Clone, PartialEq, ::prost::Message)]
350pub struct AddTabMutation {
351 #[prost(string, optional, tag = "1")]
353 pub tab_name: ::core::option::Option<::prost::alloc::string::String>,
354}
355#[derive(Clone, PartialEq, ::prost::Message)]
357pub struct AddOrUpdatePanelMutation {
358 #[prost(string, tag = "1")]
360 pub panel_as_json: ::prost::alloc::string::String,
361 #[prost(string, tag = "2")]
362 pub panel_id: ::prost::alloc::string::String,
363 #[prost(int32, tag = "3")]
364 pub tab_index: i32,
365}
366#[derive(Clone, PartialEq, ::prost::Message)]
367pub struct RemovePanelsMutation {
368 #[prost(string, repeated, tag = "1")]
369 pub panel_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
370}
371#[derive(Clone, PartialEq, ::prost::Message)]
373pub struct AddOrReplaceVariableMutation {
374 #[prost(string, tag = "1")]
378 pub compute_spec_as_json: ::prost::alloc::string::String,
379 #[prost(string, optional, tag = "2")]
381 pub variable_name: ::core::option::Option<::prost::alloc::string::String>,
382 #[prost(string, optional, tag = "3")]
383 pub display_name: ::core::option::Option<::prost::alloc::string::String>,
384}
385#[derive(Clone, PartialEq, ::prost::Message)]
387pub struct DeleteVariablesMutation {
388 #[prost(string, repeated, tag = "1")]
389 pub variable_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
390}
391#[derive(Clone, PartialEq, ::prost::Message)]
393pub struct WorkbookMutation {
394 #[prost(string, tag = "1")]
395 pub id: ::prost::alloc::string::String,
396 #[prost(oneof = "workbook_mutation::Mutation", tags = "2, 3, 4, 5, 6")]
397 pub mutation: ::core::option::Option<workbook_mutation::Mutation>,
398}
399pub mod workbook_mutation {
401 #[derive(Clone, PartialEq, ::prost::Oneof)]
402 pub enum Mutation {
403 #[prost(message, tag = "2")]
404 AddTab(super::AddTabMutation),
405 #[prost(message, tag = "3")]
406 AddOrUpdatePanel(super::AddOrUpdatePanelMutation),
407 #[prost(message, tag = "4")]
408 RemovePanels(super::RemovePanelsMutation),
409 #[prost(message, tag = "5")]
410 AddOrReplaceVariable(super::AddOrReplaceVariableMutation),
411 #[prost(message, tag = "6")]
412 DeleteVariables(super::DeleteVariablesMutation),
413 }
414}
415#[derive(Clone, PartialEq, ::prost::Message)]
420pub struct ToolAction {
421 #[prost(string, tag = "1")]
422 pub id: ::prost::alloc::string::String,
423 #[prost(string, tag = "2")]
425 pub tool_action_verb: ::prost::alloc::string::String,
426 #[prost(string, optional, tag = "3")]
428 pub tool_target: ::core::option::Option<::prost::alloc::string::String>,
429}
430pub mod ai_agent_service_client {
432 #![allow(
433 unused_variables,
434 dead_code,
435 missing_docs,
436 clippy::wildcard_imports,
437 clippy::let_unit_value,
438 )]
439 use tonic::codegen::*;
440 use tonic::codegen::http::Uri;
441 #[derive(Debug, Clone)]
443 pub struct AiAgentServiceClient<T> {
444 inner: tonic::client::Grpc<T>,
445 }
446 impl AiAgentServiceClient<tonic::transport::Channel> {
447 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
449 where
450 D: TryInto<tonic::transport::Endpoint>,
451 D::Error: Into<StdError>,
452 {
453 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
454 Ok(Self::new(conn))
455 }
456 }
457 impl<T> AiAgentServiceClient<T>
458 where
459 T: tonic::client::GrpcService<tonic::body::Body>,
460 T::Error: Into<StdError>,
461 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
462 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
463 {
464 pub fn new(inner: T) -> Self {
465 let inner = tonic::client::Grpc::new(inner);
466 Self { inner }
467 }
468 pub fn with_origin(inner: T, origin: Uri) -> Self {
469 let inner = tonic::client::Grpc::with_origin(inner, origin);
470 Self { inner }
471 }
472 pub fn with_interceptor<F>(
473 inner: T,
474 interceptor: F,
475 ) -> AiAgentServiceClient<InterceptedService<T, F>>
476 where
477 F: tonic::service::Interceptor,
478 T::ResponseBody: Default,
479 T: tonic::codegen::Service<
480 http::Request<tonic::body::Body>,
481 Response = http::Response<
482 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
483 >,
484 >,
485 <T as tonic::codegen::Service<
486 http::Request<tonic::body::Body>,
487 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
488 {
489 AiAgentServiceClient::new(InterceptedService::new(inner, interceptor))
490 }
491 #[must_use]
496 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
497 self.inner = self.inner.send_compressed(encoding);
498 self
499 }
500 #[must_use]
502 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
503 self.inner = self.inner.accept_compressed(encoding);
504 self
505 }
506 #[must_use]
510 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
511 self.inner = self.inner.max_decoding_message_size(limit);
512 self
513 }
514 #[must_use]
518 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
519 self.inner = self.inner.max_encoding_message_size(limit);
520 self
521 }
522 pub async fn stream_chat(
524 &mut self,
525 request: impl tonic::IntoRequest<super::StreamChatRequest>,
526 ) -> std::result::Result<
527 tonic::Response<tonic::codec::Streaming<super::StreamChatResponse>>,
528 tonic::Status,
529 > {
530 self.inner
531 .ready()
532 .await
533 .map_err(|e| {
534 tonic::Status::unknown(
535 format!("Service was not ready: {}", e.into()),
536 )
537 })?;
538 let codec = tonic::codec::ProstCodec::default();
539 let path = http::uri::PathAndQuery::from_static(
540 "/nominal.ai.v1.AIAgentService/StreamChat",
541 );
542 let mut req = request.into_request();
543 req.extensions_mut()
544 .insert(GrpcMethod::new("nominal.ai.v1.AIAgentService", "StreamChat"));
545 self.inner.server_streaming(req, path, codec).await
546 }
547 pub async fn get_conversation(
549 &mut self,
550 request: impl tonic::IntoRequest<super::GetConversationRequest>,
551 ) -> std::result::Result<
552 tonic::Response<super::GetConversationResponse>,
553 tonic::Status,
554 > {
555 self.inner
556 .ready()
557 .await
558 .map_err(|e| {
559 tonic::Status::unknown(
560 format!("Service was not ready: {}", e.into()),
561 )
562 })?;
563 let codec = tonic::codec::ProstCodec::default();
564 let path = http::uri::PathAndQuery::from_static(
565 "/nominal.ai.v1.AIAgentService/GetConversation",
566 );
567 let mut req = request.into_request();
568 req.extensions_mut()
569 .insert(
570 GrpcMethod::new("nominal.ai.v1.AIAgentService", "GetConversation"),
571 );
572 self.inner.unary(req, path, codec).await
573 }
574 pub async fn list_conversations(
576 &mut self,
577 request: impl tonic::IntoRequest<super::ListConversationsRequest>,
578 ) -> std::result::Result<
579 tonic::Response<super::ListConversationsResponse>,
580 tonic::Status,
581 > {
582 self.inner
583 .ready()
584 .await
585 .map_err(|e| {
586 tonic::Status::unknown(
587 format!("Service was not ready: {}", e.into()),
588 )
589 })?;
590 let codec = tonic::codec::ProstCodec::default();
591 let path = http::uri::PathAndQuery::from_static(
592 "/nominal.ai.v1.AIAgentService/ListConversations",
593 );
594 let mut req = request.into_request();
595 req.extensions_mut()
596 .insert(
597 GrpcMethod::new("nominal.ai.v1.AIAgentService", "ListConversations"),
598 );
599 self.inner.unary(req, path, codec).await
600 }
601 pub async fn create_conversation(
603 &mut self,
604 request: impl tonic::IntoRequest<super::CreateConversationRequest>,
605 ) -> std::result::Result<
606 tonic::Response<super::CreateConversationResponse>,
607 tonic::Status,
608 > {
609 self.inner
610 .ready()
611 .await
612 .map_err(|e| {
613 tonic::Status::unknown(
614 format!("Service was not ready: {}", e.into()),
615 )
616 })?;
617 let codec = tonic::codec::ProstCodec::default();
618 let path = http::uri::PathAndQuery::from_static(
619 "/nominal.ai.v1.AIAgentService/CreateConversation",
620 );
621 let mut req = request.into_request();
622 req.extensions_mut()
623 .insert(
624 GrpcMethod::new("nominal.ai.v1.AIAgentService", "CreateConversation"),
625 );
626 self.inner.unary(req, path, codec).await
627 }
628 pub async fn update_conversation_metadata(
630 &mut self,
631 request: impl tonic::IntoRequest<super::UpdateConversationMetadataRequest>,
632 ) -> std::result::Result<
633 tonic::Response<super::UpdateConversationMetadataResponse>,
634 tonic::Status,
635 > {
636 self.inner
637 .ready()
638 .await
639 .map_err(|e| {
640 tonic::Status::unknown(
641 format!("Service was not ready: {}", e.into()),
642 )
643 })?;
644 let codec = tonic::codec::ProstCodec::default();
645 let path = http::uri::PathAndQuery::from_static(
646 "/nominal.ai.v1.AIAgentService/UpdateConversationMetadata",
647 );
648 let mut req = request.into_request();
649 req.extensions_mut()
650 .insert(
651 GrpcMethod::new(
652 "nominal.ai.v1.AIAgentService",
653 "UpdateConversationMetadata",
654 ),
655 );
656 self.inner.unary(req, path, codec).await
657 }
658 pub async fn delete_conversation(
660 &mut self,
661 request: impl tonic::IntoRequest<super::DeleteConversationRequest>,
662 ) -> std::result::Result<
663 tonic::Response<super::DeleteConversationResponse>,
664 tonic::Status,
665 > {
666 self.inner
667 .ready()
668 .await
669 .map_err(|e| {
670 tonic::Status::unknown(
671 format!("Service was not ready: {}", e.into()),
672 )
673 })?;
674 let codec = tonic::codec::ProstCodec::default();
675 let path = http::uri::PathAndQuery::from_static(
676 "/nominal.ai.v1.AIAgentService/DeleteConversation",
677 );
678 let mut req = request.into_request();
679 req.extensions_mut()
680 .insert(
681 GrpcMethod::new("nominal.ai.v1.AIAgentService", "DeleteConversation"),
682 );
683 self.inner.unary(req, path, codec).await
684 }
685 }
686}
687#[derive(Clone, PartialEq, ::prost::Message)]
689pub struct WorkbookAgentServiceStreamChatRequest {
690 #[prost(message, repeated, tag = "1")]
691 pub messages: ::prost::alloc::vec::Vec<ModelMessage>,
692 #[prost(string, optional, tag = "2")]
694 pub notebook_as_json: ::core::option::Option<::prost::alloc::string::String>,
695 #[prost(int32, optional, tag = "3")]
697 pub selected_tab_index: ::core::option::Option<i32>,
698 #[prost(message, repeated, tag = "4")]
700 pub images: ::prost::alloc::vec::Vec<ImagePart>,
701 #[prost(message, optional, tag = "5")]
703 pub range: ::core::option::Option<TimeRange>,
704 #[prost(message, optional, tag = "6")]
707 pub message: ::core::option::Option<AppendMessage>,
708}
709#[derive(Clone, PartialEq, ::prost::Message)]
712pub struct AppendMessage {
713 #[prost(message, optional, tag = "1")]
714 pub message: ::core::option::Option<UserModelMessage>,
715 #[prost(string, tag = "2")]
716 pub conversation_rid: ::prost::alloc::string::String,
717}
718pub mod workbook_agent_service_client {
720 #![allow(
721 unused_variables,
722 dead_code,
723 missing_docs,
724 clippy::wildcard_imports,
725 clippy::let_unit_value,
726 )]
727 use tonic::codegen::*;
728 use tonic::codegen::http::Uri;
729 #[derive(Debug, Clone)]
732 pub struct WorkbookAgentServiceClient<T> {
733 inner: tonic::client::Grpc<T>,
734 }
735 impl WorkbookAgentServiceClient<tonic::transport::Channel> {
736 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
738 where
739 D: TryInto<tonic::transport::Endpoint>,
740 D::Error: Into<StdError>,
741 {
742 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
743 Ok(Self::new(conn))
744 }
745 }
746 impl<T> WorkbookAgentServiceClient<T>
747 where
748 T: tonic::client::GrpcService<tonic::body::Body>,
749 T::Error: Into<StdError>,
750 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
751 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
752 {
753 pub fn new(inner: T) -> Self {
754 let inner = tonic::client::Grpc::new(inner);
755 Self { inner }
756 }
757 pub fn with_origin(inner: T, origin: Uri) -> Self {
758 let inner = tonic::client::Grpc::with_origin(inner, origin);
759 Self { inner }
760 }
761 pub fn with_interceptor<F>(
762 inner: T,
763 interceptor: F,
764 ) -> WorkbookAgentServiceClient<InterceptedService<T, F>>
765 where
766 F: tonic::service::Interceptor,
767 T::ResponseBody: Default,
768 T: tonic::codegen::Service<
769 http::Request<tonic::body::Body>,
770 Response = http::Response<
771 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
772 >,
773 >,
774 <T as tonic::codegen::Service<
775 http::Request<tonic::body::Body>,
776 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
777 {
778 WorkbookAgentServiceClient::new(InterceptedService::new(inner, interceptor))
779 }
780 #[must_use]
785 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
786 self.inner = self.inner.send_compressed(encoding);
787 self
788 }
789 #[must_use]
791 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
792 self.inner = self.inner.accept_compressed(encoding);
793 self
794 }
795 #[must_use]
799 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
800 self.inner = self.inner.max_decoding_message_size(limit);
801 self
802 }
803 #[must_use]
807 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
808 self.inner = self.inner.max_encoding_message_size(limit);
809 self
810 }
811 pub async fn stream_chat(
813 &mut self,
814 request: impl tonic::IntoRequest<
815 super::WorkbookAgentServiceStreamChatRequest,
816 >,
817 ) -> std::result::Result<
818 tonic::Response<tonic::codec::Streaming<super::StreamChatResponse>>,
819 tonic::Status,
820 > {
821 self.inner
822 .ready()
823 .await
824 .map_err(|e| {
825 tonic::Status::unknown(
826 format!("Service was not ready: {}", e.into()),
827 )
828 })?;
829 let codec = tonic::codec::ProstCodec::default();
830 let path = http::uri::PathAndQuery::from_static(
831 "/nominal.ai.v1.WorkbookAgentService/StreamChat",
832 );
833 let mut req = request.into_request();
834 req.extensions_mut()
835 .insert(
836 GrpcMethod::new("nominal.ai.v1.WorkbookAgentService", "StreamChat"),
837 );
838 self.inner.server_streaming(req, path, codec).await
839 }
840 pub async fn get_conversation(
842 &mut self,
843 request: impl tonic::IntoRequest<super::GetConversationRequest>,
844 ) -> std::result::Result<
845 tonic::Response<super::GetConversationResponse>,
846 tonic::Status,
847 > {
848 self.inner
849 .ready()
850 .await
851 .map_err(|e| {
852 tonic::Status::unknown(
853 format!("Service was not ready: {}", e.into()),
854 )
855 })?;
856 let codec = tonic::codec::ProstCodec::default();
857 let path = http::uri::PathAndQuery::from_static(
858 "/nominal.ai.v1.WorkbookAgentService/GetConversation",
859 );
860 let mut req = request.into_request();
861 req.extensions_mut()
862 .insert(
863 GrpcMethod::new(
864 "nominal.ai.v1.WorkbookAgentService",
865 "GetConversation",
866 ),
867 );
868 self.inner.unary(req, path, codec).await
869 }
870 pub async fn list_conversations(
872 &mut self,
873 request: impl tonic::IntoRequest<super::ListConversationsRequest>,
874 ) -> std::result::Result<
875 tonic::Response<super::ListConversationsResponse>,
876 tonic::Status,
877 > {
878 self.inner
879 .ready()
880 .await
881 .map_err(|e| {
882 tonic::Status::unknown(
883 format!("Service was not ready: {}", e.into()),
884 )
885 })?;
886 let codec = tonic::codec::ProstCodec::default();
887 let path = http::uri::PathAndQuery::from_static(
888 "/nominal.ai.v1.WorkbookAgentService/ListConversations",
889 );
890 let mut req = request.into_request();
891 req.extensions_mut()
892 .insert(
893 GrpcMethod::new(
894 "nominal.ai.v1.WorkbookAgentService",
895 "ListConversations",
896 ),
897 );
898 self.inner.unary(req, path, codec).await
899 }
900 pub async fn create_conversation(
902 &mut self,
903 request: impl tonic::IntoRequest<super::CreateConversationRequest>,
904 ) -> std::result::Result<
905 tonic::Response<super::CreateConversationResponse>,
906 tonic::Status,
907 > {
908 self.inner
909 .ready()
910 .await
911 .map_err(|e| {
912 tonic::Status::unknown(
913 format!("Service was not ready: {}", e.into()),
914 )
915 })?;
916 let codec = tonic::codec::ProstCodec::default();
917 let path = http::uri::PathAndQuery::from_static(
918 "/nominal.ai.v1.WorkbookAgentService/CreateConversation",
919 );
920 let mut req = request.into_request();
921 req.extensions_mut()
922 .insert(
923 GrpcMethod::new(
924 "nominal.ai.v1.WorkbookAgentService",
925 "CreateConversation",
926 ),
927 );
928 self.inner.unary(req, path, codec).await
929 }
930 pub async fn update_conversation_metadata(
932 &mut self,
933 request: impl tonic::IntoRequest<super::UpdateConversationMetadataRequest>,
934 ) -> std::result::Result<
935 tonic::Response<super::UpdateConversationMetadataResponse>,
936 tonic::Status,
937 > {
938 self.inner
939 .ready()
940 .await
941 .map_err(|e| {
942 tonic::Status::unknown(
943 format!("Service was not ready: {}", e.into()),
944 )
945 })?;
946 let codec = tonic::codec::ProstCodec::default();
947 let path = http::uri::PathAndQuery::from_static(
948 "/nominal.ai.v1.WorkbookAgentService/UpdateConversationMetadata",
949 );
950 let mut req = request.into_request();
951 req.extensions_mut()
952 .insert(
953 GrpcMethod::new(
954 "nominal.ai.v1.WorkbookAgentService",
955 "UpdateConversationMetadata",
956 ),
957 );
958 self.inner.unary(req, path, codec).await
959 }
960 pub async fn delete_conversation(
962 &mut self,
963 request: impl tonic::IntoRequest<super::DeleteConversationRequest>,
964 ) -> std::result::Result<
965 tonic::Response<super::DeleteConversationResponse>,
966 tonic::Status,
967 > {
968 self.inner
969 .ready()
970 .await
971 .map_err(|e| {
972 tonic::Status::unknown(
973 format!("Service was not ready: {}", e.into()),
974 )
975 })?;
976 let codec = tonic::codec::ProstCodec::default();
977 let path = http::uri::PathAndQuery::from_static(
978 "/nominal.ai.v1.WorkbookAgentService/DeleteConversation",
979 );
980 let mut req = request.into_request();
981 req.extensions_mut()
982 .insert(
983 GrpcMethod::new(
984 "nominal.ai.v1.WorkbookAgentService",
985 "DeleteConversation",
986 ),
987 );
988 self.inner.unary(req, path, codec).await
989 }
990 }
991}
992#[derive(Clone, Copy, PartialEq, ::prost::Message)]
993pub struct GetProviderStatusRequest {}
994#[derive(Clone, Copy, PartialEq, ::prost::Message)]
995pub struct GetProviderStatusResponse {
996 #[prost(message, optional, tag = "1")]
998 pub timestamp: ::core::option::Option<
999 super::super::super::google::protobuf::Timestamp,
1000 >,
1001 #[prost(message, optional, tag = "2")]
1003 pub last_status: ::core::option::Option<ProviderStatus>,
1004 #[prost(message, optional, tag = "3")]
1006 pub aggregated_status_over_last_30m: ::core::option::Option<ProviderStatus>,
1007}
1008#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1009pub struct ProviderStatus {
1010 #[prost(oneof = "provider_status::Status", tags = "1, 2")]
1011 pub status: ::core::option::Option<provider_status::Status>,
1012}
1013pub mod provider_status {
1015 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1016 pub enum Status {
1017 #[prost(message, tag = "1")]
1018 Healthy(super::Healthy),
1019 #[prost(message, tag = "2")]
1020 Degraded(super::Degraded),
1021 }
1022}
1023#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1024pub struct Healthy {}
1025#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1026pub struct Degraded {
1027 #[prost(enumeration = "DegradationReason", tag = "1")]
1028 pub reason: i32,
1029}
1030#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1031pub struct ProviderMetrics {
1032 #[prost(int32, tag = "1")]
1033 pub time_to_first_token_ms: i32,
1034 #[prost(int32, tag = "2")]
1035 pub total_time_ms: i32,
1036}
1037#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1038#[repr(i32)]
1039pub enum DegradationReason {
1040 Unspecified = 0,
1041 HighLatency = 1,
1042 Failures = 2,
1043 HighLatencyAndFailures = 3,
1044}
1045impl DegradationReason {
1046 pub fn as_str_name(&self) -> &'static str {
1051 match self {
1052 Self::Unspecified => "DEGRADATION_REASON_UNSPECIFIED",
1053 Self::HighLatency => "DEGRADATION_REASON_HIGH_LATENCY",
1054 Self::Failures => "DEGRADATION_REASON_FAILURES",
1055 Self::HighLatencyAndFailures => {
1056 "DEGRADATION_REASON_HIGH_LATENCY_AND_FAILURES"
1057 }
1058 }
1059 }
1060 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1062 match value {
1063 "DEGRADATION_REASON_UNSPECIFIED" => Some(Self::Unspecified),
1064 "DEGRADATION_REASON_HIGH_LATENCY" => Some(Self::HighLatency),
1065 "DEGRADATION_REASON_FAILURES" => Some(Self::Failures),
1066 "DEGRADATION_REASON_HIGH_LATENCY_AND_FAILURES" => {
1067 Some(Self::HighLatencyAndFailures)
1068 }
1069 _ => None,
1070 }
1071 }
1072}
1073pub mod model_provider_health_service_client {
1075 #![allow(
1076 unused_variables,
1077 dead_code,
1078 missing_docs,
1079 clippy::wildcard_imports,
1080 clippy::let_unit_value,
1081 )]
1082 use tonic::codegen::*;
1083 use tonic::codegen::http::Uri;
1084 #[derive(Debug, Clone)]
1088 pub struct ModelProviderHealthServiceClient<T> {
1089 inner: tonic::client::Grpc<T>,
1090 }
1091 impl ModelProviderHealthServiceClient<tonic::transport::Channel> {
1092 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1094 where
1095 D: TryInto<tonic::transport::Endpoint>,
1096 D::Error: Into<StdError>,
1097 {
1098 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1099 Ok(Self::new(conn))
1100 }
1101 }
1102 impl<T> ModelProviderHealthServiceClient<T>
1103 where
1104 T: tonic::client::GrpcService<tonic::body::Body>,
1105 T::Error: Into<StdError>,
1106 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1107 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1108 {
1109 pub fn new(inner: T) -> Self {
1110 let inner = tonic::client::Grpc::new(inner);
1111 Self { inner }
1112 }
1113 pub fn with_origin(inner: T, origin: Uri) -> Self {
1114 let inner = tonic::client::Grpc::with_origin(inner, origin);
1115 Self { inner }
1116 }
1117 pub fn with_interceptor<F>(
1118 inner: T,
1119 interceptor: F,
1120 ) -> ModelProviderHealthServiceClient<InterceptedService<T, F>>
1121 where
1122 F: tonic::service::Interceptor,
1123 T::ResponseBody: Default,
1124 T: tonic::codegen::Service<
1125 http::Request<tonic::body::Body>,
1126 Response = http::Response<
1127 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1128 >,
1129 >,
1130 <T as tonic::codegen::Service<
1131 http::Request<tonic::body::Body>,
1132 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1133 {
1134 ModelProviderHealthServiceClient::new(
1135 InterceptedService::new(inner, interceptor),
1136 )
1137 }
1138 #[must_use]
1143 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1144 self.inner = self.inner.send_compressed(encoding);
1145 self
1146 }
1147 #[must_use]
1149 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1150 self.inner = self.inner.accept_compressed(encoding);
1151 self
1152 }
1153 #[must_use]
1157 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1158 self.inner = self.inner.max_decoding_message_size(limit);
1159 self
1160 }
1161 #[must_use]
1165 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1166 self.inner = self.inner.max_encoding_message_size(limit);
1167 self
1168 }
1169 pub async fn get_provider_status(
1173 &mut self,
1174 request: impl tonic::IntoRequest<super::GetProviderStatusRequest>,
1175 ) -> std::result::Result<
1176 tonic::Response<super::GetProviderStatusResponse>,
1177 tonic::Status,
1178 > {
1179 self.inner
1180 .ready()
1181 .await
1182 .map_err(|e| {
1183 tonic::Status::unknown(
1184 format!("Service was not ready: {}", e.into()),
1185 )
1186 })?;
1187 let codec = tonic::codec::ProstCodec::default();
1188 let path = http::uri::PathAndQuery::from_static(
1189 "/nominal.ai.v1.ModelProviderHealthService/GetProviderStatus",
1190 );
1191 let mut req = request.into_request();
1192 req.extensions_mut()
1193 .insert(
1194 GrpcMethod::new(
1195 "nominal.ai.v1.ModelProviderHealthService",
1196 "GetProviderStatus",
1197 ),
1198 );
1199 self.inner.unary(req, path, codec).await
1200 }
1201 }
1202}
1203#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1204pub struct IsAiEnabledForUserRequest {}
1205#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1206pub struct IsAiEnabledForUserResponse {
1207 #[prost(bool, tag = "1")]
1208 pub is_enabled: bool,
1209}
1210pub mod ai_features_service_client {
1212 #![allow(
1213 unused_variables,
1214 dead_code,
1215 missing_docs,
1216 clippy::wildcard_imports,
1217 clippy::let_unit_value,
1218 )]
1219 use tonic::codegen::*;
1220 use tonic::codegen::http::Uri;
1221 #[derive(Debug, Clone)]
1223 pub struct AiFeaturesServiceClient<T> {
1224 inner: tonic::client::Grpc<T>,
1225 }
1226 impl AiFeaturesServiceClient<tonic::transport::Channel> {
1227 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1229 where
1230 D: TryInto<tonic::transport::Endpoint>,
1231 D::Error: Into<StdError>,
1232 {
1233 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1234 Ok(Self::new(conn))
1235 }
1236 }
1237 impl<T> AiFeaturesServiceClient<T>
1238 where
1239 T: tonic::client::GrpcService<tonic::body::Body>,
1240 T::Error: Into<StdError>,
1241 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1242 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1243 {
1244 pub fn new(inner: T) -> Self {
1245 let inner = tonic::client::Grpc::new(inner);
1246 Self { inner }
1247 }
1248 pub fn with_origin(inner: T, origin: Uri) -> Self {
1249 let inner = tonic::client::Grpc::with_origin(inner, origin);
1250 Self { inner }
1251 }
1252 pub fn with_interceptor<F>(
1253 inner: T,
1254 interceptor: F,
1255 ) -> AiFeaturesServiceClient<InterceptedService<T, F>>
1256 where
1257 F: tonic::service::Interceptor,
1258 T::ResponseBody: Default,
1259 T: tonic::codegen::Service<
1260 http::Request<tonic::body::Body>,
1261 Response = http::Response<
1262 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1263 >,
1264 >,
1265 <T as tonic::codegen::Service<
1266 http::Request<tonic::body::Body>,
1267 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1268 {
1269 AiFeaturesServiceClient::new(InterceptedService::new(inner, interceptor))
1270 }
1271 #[must_use]
1276 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1277 self.inner = self.inner.send_compressed(encoding);
1278 self
1279 }
1280 #[must_use]
1282 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1283 self.inner = self.inner.accept_compressed(encoding);
1284 self
1285 }
1286 #[must_use]
1290 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1291 self.inner = self.inner.max_decoding_message_size(limit);
1292 self
1293 }
1294 #[must_use]
1298 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1299 self.inner = self.inner.max_encoding_message_size(limit);
1300 self
1301 }
1302 pub async fn is_ai_enabled_for_user(
1304 &mut self,
1305 request: impl tonic::IntoRequest<super::IsAiEnabledForUserRequest>,
1306 ) -> std::result::Result<
1307 tonic::Response<super::IsAiEnabledForUserResponse>,
1308 tonic::Status,
1309 > {
1310 self.inner
1311 .ready()
1312 .await
1313 .map_err(|e| {
1314 tonic::Status::unknown(
1315 format!("Service was not ready: {}", e.into()),
1316 )
1317 })?;
1318 let codec = tonic::codec::ProstCodec::default();
1319 let path = http::uri::PathAndQuery::from_static(
1320 "/nominal.ai.v1.AIFeaturesService/IsAIEnabledForUser",
1321 );
1322 let mut req = request.into_request();
1323 req.extensions_mut()
1324 .insert(
1325 GrpcMethod::new(
1326 "nominal.ai.v1.AIFeaturesService",
1327 "IsAIEnabledForUser",
1328 ),
1329 );
1330 self.inner.unary(req, path, codec).await
1331 }
1332 }
1333}
1334#[derive(Clone, PartialEq, ::prost::Message)]
1337pub struct CreateOrUpdateKnowledgeBaseRequest {
1338 #[prost(string, tag = "1")]
1339 pub attachment_rid: ::prost::alloc::string::String,
1340 #[prost(string, tag = "2")]
1342 pub summary_description: ::prost::alloc::string::String,
1343 #[prost(enumeration = "KnowledgeBaseType", optional, tag = "3")]
1344 pub r#type: ::core::option::Option<i32>,
1345}
1346#[derive(Clone, PartialEq, ::prost::Message)]
1348pub struct CreateOrUpdateKnowledgeBaseResponse {
1349 #[prost(string, tag = "1")]
1350 pub knowledge_base_rid: ::prost::alloc::string::String,
1351}
1352#[derive(Clone, PartialEq, ::prost::Message)]
1354pub struct KnowledgeBase {
1355 #[prost(string, tag = "1")]
1356 pub knowledge_base_rid: ::prost::alloc::string::String,
1357 #[prost(string, tag = "2")]
1358 pub attachment_rid: ::prost::alloc::string::String,
1359 #[prost(string, tag = "3")]
1360 pub workspace_rid: ::prost::alloc::string::String,
1361 #[prost(string, tag = "4")]
1362 pub summary_description: ::prost::alloc::string::String,
1363 #[prost(enumeration = "KnowledgeBaseType", tag = "5")]
1364 pub r#type: i32,
1365 #[prost(int32, tag = "6")]
1366 pub version: i32,
1367}
1368#[derive(Clone, PartialEq, ::prost::Message)]
1369pub struct ListRequest {
1370 #[prost(string, tag = "1")]
1371 pub workspace_rid: ::prost::alloc::string::String,
1372}
1373#[derive(Clone, PartialEq, ::prost::Message)]
1374pub struct ListResponse {
1375 #[prost(message, repeated, tag = "1")]
1376 pub knowledge_bases: ::prost::alloc::vec::Vec<KnowledgeBase>,
1377}
1378#[derive(Clone, PartialEq, ::prost::Message)]
1379pub struct DeleteRequest {
1380 #[prost(string, tag = "1")]
1381 pub knowledge_base_rid: ::prost::alloc::string::String,
1382}
1383#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1384pub struct DeleteResponse {
1385 #[prost(bool, tag = "1")]
1386 pub success: bool,
1387}
1388#[derive(Clone, PartialEq, ::prost::Message)]
1389pub struct GetBatchRequest {
1390 #[prost(string, repeated, tag = "1")]
1391 pub knowledge_base_rids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1392}
1393#[derive(Clone, PartialEq, ::prost::Message)]
1394pub struct GetBatchResponse {
1395 #[prost(message, repeated, tag = "1")]
1396 pub knowledge_bases: ::prost::alloc::vec::Vec<KnowledgeBase>,
1397}
1398#[derive(Clone, PartialEq, ::prost::Message)]
1401pub struct GenerateSummaryDescriptionRequest {
1402 #[prost(string, tag = "1")]
1403 pub attachment_rid: ::prost::alloc::string::String,
1404}
1405#[derive(Clone, PartialEq, ::prost::Message)]
1406pub struct GenerateSummaryDescriptionResponse {
1407 #[prost(string, tag = "1")]
1408 pub summary_description: ::prost::alloc::string::String,
1409}
1410#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1412#[repr(i32)]
1413pub enum KnowledgeBaseType {
1414 Unspecified = 0,
1416 Prompt = 1,
1418 Embedding = 2,
1420}
1421impl KnowledgeBaseType {
1422 pub fn as_str_name(&self) -> &'static str {
1427 match self {
1428 Self::Unspecified => "KNOWLEDGE_BASE_TYPE_UNSPECIFIED",
1429 Self::Prompt => "KNOWLEDGE_BASE_TYPE_PROMPT",
1430 Self::Embedding => "KNOWLEDGE_BASE_TYPE_EMBEDDING",
1431 }
1432 }
1433 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1435 match value {
1436 "KNOWLEDGE_BASE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
1437 "KNOWLEDGE_BASE_TYPE_PROMPT" => Some(Self::Prompt),
1438 "KNOWLEDGE_BASE_TYPE_EMBEDDING" => Some(Self::Embedding),
1439 _ => None,
1440 }
1441 }
1442}
1443pub mod knowledge_base_service_client {
1445 #![allow(
1446 unused_variables,
1447 dead_code,
1448 missing_docs,
1449 clippy::wildcard_imports,
1450 clippy::let_unit_value,
1451 )]
1452 use tonic::codegen::*;
1453 use tonic::codegen::http::Uri;
1454 #[derive(Debug, Clone)]
1456 pub struct KnowledgeBaseServiceClient<T> {
1457 inner: tonic::client::Grpc<T>,
1458 }
1459 impl KnowledgeBaseServiceClient<tonic::transport::Channel> {
1460 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1462 where
1463 D: TryInto<tonic::transport::Endpoint>,
1464 D::Error: Into<StdError>,
1465 {
1466 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1467 Ok(Self::new(conn))
1468 }
1469 }
1470 impl<T> KnowledgeBaseServiceClient<T>
1471 where
1472 T: tonic::client::GrpcService<tonic::body::Body>,
1473 T::Error: Into<StdError>,
1474 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1475 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1476 {
1477 pub fn new(inner: T) -> Self {
1478 let inner = tonic::client::Grpc::new(inner);
1479 Self { inner }
1480 }
1481 pub fn with_origin(inner: T, origin: Uri) -> Self {
1482 let inner = tonic::client::Grpc::with_origin(inner, origin);
1483 Self { inner }
1484 }
1485 pub fn with_interceptor<F>(
1486 inner: T,
1487 interceptor: F,
1488 ) -> KnowledgeBaseServiceClient<InterceptedService<T, F>>
1489 where
1490 F: tonic::service::Interceptor,
1491 T::ResponseBody: Default,
1492 T: tonic::codegen::Service<
1493 http::Request<tonic::body::Body>,
1494 Response = http::Response<
1495 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
1496 >,
1497 >,
1498 <T as tonic::codegen::Service<
1499 http::Request<tonic::body::Body>,
1500 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1501 {
1502 KnowledgeBaseServiceClient::new(InterceptedService::new(inner, interceptor))
1503 }
1504 #[must_use]
1509 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1510 self.inner = self.inner.send_compressed(encoding);
1511 self
1512 }
1513 #[must_use]
1515 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1516 self.inner = self.inner.accept_compressed(encoding);
1517 self
1518 }
1519 #[must_use]
1523 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1524 self.inner = self.inner.max_decoding_message_size(limit);
1525 self
1526 }
1527 #[must_use]
1531 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1532 self.inner = self.inner.max_encoding_message_size(limit);
1533 self
1534 }
1535 pub async fn create_or_update_knowledge_base(
1537 &mut self,
1538 request: impl tonic::IntoRequest<super::CreateOrUpdateKnowledgeBaseRequest>,
1539 ) -> std::result::Result<
1540 tonic::Response<super::CreateOrUpdateKnowledgeBaseResponse>,
1541 tonic::Status,
1542 > {
1543 self.inner
1544 .ready()
1545 .await
1546 .map_err(|e| {
1547 tonic::Status::unknown(
1548 format!("Service was not ready: {}", e.into()),
1549 )
1550 })?;
1551 let codec = tonic::codec::ProstCodec::default();
1552 let path = http::uri::PathAndQuery::from_static(
1553 "/nominal.ai.v1.KnowledgeBaseService/CreateOrUpdateKnowledgeBase",
1554 );
1555 let mut req = request.into_request();
1556 req.extensions_mut()
1557 .insert(
1558 GrpcMethod::new(
1559 "nominal.ai.v1.KnowledgeBaseService",
1560 "CreateOrUpdateKnowledgeBase",
1561 ),
1562 );
1563 self.inner.unary(req, path, codec).await
1564 }
1565 pub async fn list(
1567 &mut self,
1568 request: impl tonic::IntoRequest<super::ListRequest>,
1569 ) -> std::result::Result<tonic::Response<super::ListResponse>, tonic::Status> {
1570 self.inner
1571 .ready()
1572 .await
1573 .map_err(|e| {
1574 tonic::Status::unknown(
1575 format!("Service was not ready: {}", e.into()),
1576 )
1577 })?;
1578 let codec = tonic::codec::ProstCodec::default();
1579 let path = http::uri::PathAndQuery::from_static(
1580 "/nominal.ai.v1.KnowledgeBaseService/List",
1581 );
1582 let mut req = request.into_request();
1583 req.extensions_mut()
1584 .insert(GrpcMethod::new("nominal.ai.v1.KnowledgeBaseService", "List"));
1585 self.inner.unary(req, path, codec).await
1586 }
1587 pub async fn delete(
1589 &mut self,
1590 request: impl tonic::IntoRequest<super::DeleteRequest>,
1591 ) -> std::result::Result<tonic::Response<super::DeleteResponse>, tonic::Status> {
1592 self.inner
1593 .ready()
1594 .await
1595 .map_err(|e| {
1596 tonic::Status::unknown(
1597 format!("Service was not ready: {}", e.into()),
1598 )
1599 })?;
1600 let codec = tonic::codec::ProstCodec::default();
1601 let path = http::uri::PathAndQuery::from_static(
1602 "/nominal.ai.v1.KnowledgeBaseService/Delete",
1603 );
1604 let mut req = request.into_request();
1605 req.extensions_mut()
1606 .insert(GrpcMethod::new("nominal.ai.v1.KnowledgeBaseService", "Delete"));
1607 self.inner.unary(req, path, codec).await
1608 }
1609 pub async fn get_batch(
1611 &mut self,
1612 request: impl tonic::IntoRequest<super::GetBatchRequest>,
1613 ) -> std::result::Result<
1614 tonic::Response<super::GetBatchResponse>,
1615 tonic::Status,
1616 > {
1617 self.inner
1618 .ready()
1619 .await
1620 .map_err(|e| {
1621 tonic::Status::unknown(
1622 format!("Service was not ready: {}", e.into()),
1623 )
1624 })?;
1625 let codec = tonic::codec::ProstCodec::default();
1626 let path = http::uri::PathAndQuery::from_static(
1627 "/nominal.ai.v1.KnowledgeBaseService/GetBatch",
1628 );
1629 let mut req = request.into_request();
1630 req.extensions_mut()
1631 .insert(
1632 GrpcMethod::new("nominal.ai.v1.KnowledgeBaseService", "GetBatch"),
1633 );
1634 self.inner.unary(req, path, codec).await
1635 }
1636 pub async fn generate_summary_description(
1638 &mut self,
1639 request: impl tonic::IntoRequest<super::GenerateSummaryDescriptionRequest>,
1640 ) -> std::result::Result<
1641 tonic::Response<super::GenerateSummaryDescriptionResponse>,
1642 tonic::Status,
1643 > {
1644 self.inner
1645 .ready()
1646 .await
1647 .map_err(|e| {
1648 tonic::Status::unknown(
1649 format!("Service was not ready: {}", e.into()),
1650 )
1651 })?;
1652 let codec = tonic::codec::ProstCodec::default();
1653 let path = http::uri::PathAndQuery::from_static(
1654 "/nominal.ai.v1.KnowledgeBaseService/GenerateSummaryDescription",
1655 );
1656 let mut req = request.into_request();
1657 req.extensions_mut()
1658 .insert(
1659 GrpcMethod::new(
1660 "nominal.ai.v1.KnowledgeBaseService",
1661 "GenerateSummaryDescription",
1662 ),
1663 );
1664 self.inner.unary(req, path, codec).await
1665 }
1666 }
1667}