google-cloud-ces-v1beta 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/google/cloud/ces/v1beta/agent_card_pb.rb +3 -1
  3. data/lib/google/cloud/ces/v1beta/agent_pb.rb +3 -1
  4. data/lib/google/cloud/ces/v1beta/agent_service/client.rb +105 -1
  5. data/lib/google/cloud/ces/v1beta/agent_service/paths.rb +54 -11
  6. data/lib/google/cloud/ces/v1beta/agent_service/rest/client.rb +98 -1
  7. data/lib/google/cloud/ces/v1beta/agent_service/rest/service_stub.rb +62 -0
  8. data/lib/google/cloud/ces/v1beta/agent_service_pb.rb +3 -1
  9. data/lib/google/cloud/ces/v1beta/agent_service_services_pb.rb +2 -0
  10. data/lib/google/cloud/ces/v1beta/app_pb.rb +6 -1
  11. data/lib/google/cloud/ces/v1beta/app_version_pb.rb +1 -1
  12. data/lib/google/cloud/ces/v1beta/assistant_service/client.rb +1023 -0
  13. data/lib/google/cloud/ces/v1beta/assistant_service/credentials.rb +48 -0
  14. data/lib/google/cloud/ces/v1beta/assistant_service/paths.rb +73 -0
  15. data/lib/google/cloud/ces/v1beta/assistant_service/rest/client.rb +946 -0
  16. data/lib/google/cloud/ces/v1beta/assistant_service/rest/service_stub.rb +450 -0
  17. data/lib/google/cloud/ces/v1beta/assistant_service/rest.rb +55 -0
  18. data/lib/google/cloud/ces/v1beta/assistant_service.rb +57 -0
  19. data/lib/google/cloud/ces/v1beta/assistant_service_pb.rb +49 -0
  20. data/lib/google/cloud/ces/v1beta/assistant_service_services_pb.rb +57 -0
  21. data/lib/google/cloud/ces/v1beta/common_pb.rb +4 -1
  22. data/lib/google/cloud/ces/v1beta/conversation_pb.rb +1 -1
  23. data/lib/google/cloud/ces/v1beta/data_store_tool_pb.rb +2 -1
  24. data/lib/google/cloud/ces/v1beta/deployment_pb.rb +3 -1
  25. data/lib/google/cloud/ces/v1beta/evaluation_pb.rb +2 -1
  26. data/lib/google/cloud/ces/v1beta/evaluation_service/client.rb +2 -2
  27. data/lib/google/cloud/ces/v1beta/evaluation_service/rest/client.rb +2 -2
  28. data/lib/google/cloud/ces/v1beta/example_pb.rb +1 -1
  29. data/lib/google/cloud/ces/v1beta/guardrail_pb.rb +4 -1
  30. data/lib/google/cloud/ces/v1beta/rest.rb +1 -0
  31. data/lib/google/cloud/ces/v1beta/session_service/client.rb +333 -0
  32. data/lib/google/cloud/ces/v1beta/session_service/paths.rb +40 -0
  33. data/lib/google/cloud/ces/v1beta/session_service/rest/client.rb +314 -0
  34. data/lib/google/cloud/ces/v1beta/session_service/rest/service_stub.rb +180 -0
  35. data/lib/google/cloud/ces/v1beta/session_service_pb.rb +33 -1
  36. data/lib/google/cloud/ces/v1beta/session_service_services_pb.rb +14 -0
  37. data/lib/google/cloud/ces/v1beta/tool_pb.rb +1 -1
  38. data/lib/google/cloud/ces/v1beta/version.rb +1 -1
  39. data/lib/google/cloud/ces/v1beta.rb +1 -0
  40. data/proto_docs/google/api/field_info.rb +88 -0
  41. data/proto_docs/google/cloud/ces/v1beta/agent.rb +18 -2
  42. data/proto_docs/google/cloud/ces/v1beta/agent_card.rb +91 -0
  43. data/proto_docs/google/cloud/ces/v1beta/agent_service.rb +40 -0
  44. data/proto_docs/google/cloud/ces/v1beta/app.rb +113 -4
  45. data/proto_docs/google/cloud/ces/v1beta/app_version.rb +3 -0
  46. data/proto_docs/google/cloud/ces/v1beta/assistant_service.rb +452 -0
  47. data/proto_docs/google/cloud/ces/v1beta/common.rb +44 -0
  48. data/proto_docs/google/cloud/ces/v1beta/conversation.rb +4 -0
  49. data/proto_docs/google/cloud/ces/v1beta/data_store_tool.rb +16 -0
  50. data/proto_docs/google/cloud/ces/v1beta/deployment.rb +43 -2
  51. data/proto_docs/google/cloud/ces/v1beta/evaluation.rb +21 -5
  52. data/proto_docs/google/cloud/ces/v1beta/example.rb +23 -0
  53. data/proto_docs/google/cloud/ces/v1beta/guardrail.rb +88 -6
  54. data/proto_docs/google/cloud/ces/v1beta/session_service.rb +749 -11
  55. data/proto_docs/google/cloud/ces/v1beta/tool.rb +4 -0
  56. metadata +12 -1
@@ -129,12 +129,30 @@ module Google
129
129
  # agent when the session control is transferred to the remote agent.
130
130
  # @!attribute [rw] enable_text_streaming
131
131
  # @return [::Boolean]
132
- # Optional. Whether to enable streaming text outputs from the model.
133
- # By default, text outputs from the model are collected before sending to the
134
- # client.
135
- # NOTE: This is only supported for text (non-voice) sessions via
132
+ # Optional. Whether to stream text output from the model to the client
133
+ # incrementally as it is generated. Defaults to `false`.
134
+ #
135
+ # * When disabled, the model's text output is buffered, and each text output
136
+ # sent to the client is a complete sentence. Clients can render each text
137
+ # output on a new line.
138
+ # * When enabled, each text output may contain only part of a sentence.
139
+ # Clients should concatenate consecutive text outputs to render the
140
+ # complete response.
141
+ #
142
+ # NOTE: This is only supported for text (non-voice) sessions using
136
143
  # {::Google::Cloud::Ces::V1beta::SessionService::Client#stream_run_session StreamRunSession}
137
144
  # or {::Google::Cloud::Ces::V1beta::SessionService::Client#bidi_run_session BidiRunSession}.
145
+ # @!attribute [rw] include_llm_thought_summary
146
+ # @return [::Boolean]
147
+ # Optional. Whether to include LLM thought summaries in the session outputs.
148
+ # @!attribute [rw] exclude_diagnostic_info
149
+ # @return [::Boolean]
150
+ # Optional. Whether to exclude diagnostic info from the session output.
151
+ # @!attribute [rw] include_progress_update
152
+ # @return [::Boolean]
153
+ # Optional. Whether to include intermediate processing update to the client.
154
+ # If enabled, the update will be sent back in
155
+ # {::Google::Cloud::Ces::V1beta::SessionOutput#progress SessionOutput.progress}.
138
156
  class SessionConfig
139
157
  include ::Google::Protobuf::MessageExts
140
158
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -193,6 +211,9 @@ module Google
193
211
  # @!attribute [rw] cited_chunks
194
212
  # @return [::Array<::Google::Cloud::Ces::V1beta::Citations::CitedChunk>]
195
213
  # List of cited pieces of information.
214
+ # @!attribute [rw] inline_citations
215
+ # @return [::Array<::Google::Cloud::Ces::V1beta::Citations::InlineCitation>]
216
+ # Optional. List of inline citations in the agent response.
196
217
  class Citations
197
218
  include ::Google::Protobuf::MessageExts
198
219
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -214,12 +235,31 @@ module Google
214
235
  include ::Google::Protobuf::MessageExts
215
236
  extend ::Google::Protobuf::MessageExts::ClassMethods
216
237
  end
238
+
239
+ # An inline citation in the response text.
240
+ # @!attribute [rw] start_index
241
+ # @return [::Integer]
242
+ # The starting index (in bytes) of the text segment in the agent response.
243
+ # @!attribute [rw] end_index
244
+ # @return [::Integer]
245
+ # The ending index (in bytes) of the text segment in the agent response.
246
+ # @!attribute [rw] cited_chunk_indices
247
+ # @return [::Array<::Integer>]
248
+ # The indices of the cited chunks that back this text segment.
249
+ # Indices refer to the elements in `cited_chunks`.
250
+ class InlineCitation
251
+ include ::Google::Protobuf::MessageExts
252
+ extend ::Google::Protobuf::MessageExts::ClassMethods
253
+ end
217
254
  end
218
255
 
219
256
  # Event input.
220
257
  # @!attribute [rw] event
221
258
  # @return [::String]
222
259
  # Required. The name of the event.
260
+ # @!attribute [rw] variables
261
+ # @return [::Google::Protobuf::Struct]
262
+ # Optional. Additional variables associated with the event.
223
263
  class Event
224
264
  include ::Google::Protobuf::MessageExts
225
265
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -281,9 +321,44 @@ module Google
281
321
  #
282
322
  # NOTE: This field does not apply to audio and DTMF inputs, as they are
283
323
  # always processed automatically based on the endpointing signal.
324
+ # @!attribute [rw] recording_control
325
+ # @return [::Google::Cloud::Ces::V1beta::SessionInput::RecordingControl]
326
+ # Optional. Whether the conversation may be recorded and logged from here on.
327
+ #
328
+ # Use this when the app, rather than the agent, decides what may be kept:
329
+ # for example when the end user has to consent to being recorded before
330
+ # anything about the call can be stored.
331
+ #
332
+ # The value stays in effect until the client sends a different one, so it
333
+ # only needs to be sent when the answer changes. Whatever is in effect when
334
+ # a turn completes decides that turn, both whether its audio reaches the
335
+ # recording bucket and whether its transcript reaches conversation history,
336
+ # BigQuery and Cloud Logging. It covers the agent's side of the turn as well
337
+ # as the end user's.
338
+ #
339
+ # Turns that complete before the client first sends this are recorded
340
+ # according to the app's logging settings, as though the field did not
341
+ # exist.
342
+ #
343
+ # If more than one input in the same request sets it, the last one wins.
284
344
  class SessionInput
285
345
  include ::Google::Protobuf::MessageExts
286
346
  extend ::Google::Protobuf::MessageExts::ClassMethods
347
+
348
+ # What the app has decided may be recorded and logged.
349
+ #
350
+ # This enum is extensible; new values may be added in the future.
351
+ module RecordingControl
352
+ # The app is not controlling recording. The app's logging settings decide,
353
+ # as they do for every session that never sets this field.
354
+ RECORDING_CONTROL_UNSPECIFIED = 0
355
+
356
+ # The conversation may be recorded and logged from here on.
357
+ RECORDING_ENABLED = 1
358
+
359
+ # The conversation may not be recorded or logged from here on.
360
+ RECORDING_DISABLED = 2
361
+ end
287
362
  end
288
363
 
289
364
  # Output for the session.
@@ -291,39 +366,49 @@ module Google
291
366
  # @return [::String]
292
367
  # Output text from the CES agent.
293
368
  #
294
- # Note: The following fields are mutually exclusive: `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
369
+ # Note: The following fields are mutually exclusive: `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
295
370
  # @!attribute [rw] audio
296
371
  # @return [::String]
297
372
  # Output audio from the CES agent.
298
373
  #
299
- # Note: The following fields are mutually exclusive: `audio`, `text`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
374
+ # Note: The following fields are mutually exclusive: `audio`, `text`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
300
375
  # @!attribute [rw] tool_calls
301
376
  # @return [::Google::Cloud::Ces::V1beta::ToolCalls]
302
377
  # Request for the client to execute the tools.
303
378
  #
304
- # Note: The following fields are mutually exclusive: `tool_calls`, `text`, `audio`, `citations`, `google_search_suggestions`, `end_session`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
379
+ # Note: The following fields are mutually exclusive: `tool_calls`, `text`, `audio`, `citations`, `google_search_suggestions`, `end_session`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
305
380
  # @!attribute [rw] citations
306
381
  # @return [::Google::Cloud::Ces::V1beta::Citations]
307
382
  # Citations that provide the source information for the agent's generated
308
383
  # text.
309
384
  #
310
- # Note: The following fields are mutually exclusive: `citations`, `text`, `audio`, `tool_calls`, `google_search_suggestions`, `end_session`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
385
+ # Note: The following fields are mutually exclusive: `citations`, `text`, `audio`, `tool_calls`, `google_search_suggestions`, `end_session`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
311
386
  # @!attribute [rw] google_search_suggestions
312
387
  # @return [::Google::Cloud::Ces::V1beta::GoogleSearchSuggestions]
313
388
  # The suggestions returned from Google Search as a result of invoking the
314
389
  # {::Google::Cloud::Ces::V1beta::GoogleSearchTool GoogleSearchTool}.
315
390
  #
316
- # Note: The following fields are mutually exclusive: `google_search_suggestions`, `text`, `audio`, `tool_calls`, `citations`, `end_session`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
391
+ # Note: The following fields are mutually exclusive: `google_search_suggestions`, `text`, `audio`, `tool_calls`, `citations`, `end_session`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
317
392
  # @!attribute [rw] end_session
318
393
  # @return [::Google::Cloud::Ces::V1beta::EndSession]
319
394
  # Indicates the session has ended.
320
395
  #
321
- # Note: The following fields are mutually exclusive: `end_session`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `payload`. If a field in that set is populated, all other fields in the set will automatically be cleared.
396
+ # Note: The following fields are mutually exclusive: `end_session`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `payload`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
322
397
  # @!attribute [rw] payload
323
398
  # @return [::Google::Protobuf::Struct]
324
399
  # Custom payload with structured output from the CES agent.
325
400
  #
326
- # Note: The following fields are mutually exclusive: `payload`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`. If a field in that set is populated, all other fields in the set will automatically be cleared.
401
+ # Note: The following fields are mutually exclusive: `payload`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `image`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
402
+ # @!attribute [rw] image
403
+ # @return [::Google::Cloud::Ces::V1beta::Image]
404
+ # Output image from the CES agent.
405
+ #
406
+ # Note: The following fields are mutually exclusive: `image`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`, `progress`. If a field in that set is populated, all other fields in the set will automatically be cleared.
407
+ # @!attribute [rw] progress
408
+ # @return [::String]
409
+ # Intermediate progress update from the CES agent.
410
+ #
411
+ # Note: The following fields are mutually exclusive: `progress`, `text`, `audio`, `tool_calls`, `citations`, `google_search_suggestions`, `end_session`, `payload`, `image`. If a field in that set is populated, all other fields in the set will automatically be cleared.
327
412
  # @!attribute [rw] turn_index
328
413
  # @return [::Integer]
329
414
  # Indicates the sequential order of conversation turn to which this output
@@ -476,6 +561,659 @@ module Google
476
561
  extend ::Google::Protobuf::MessageExts::ClassMethods
477
562
  end
478
563
 
564
+ # Request message for
565
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#stream_chat_ai_assistant SessionService.StreamChatAiAssistant}.
566
+ # @!attribute [rw] name
567
+ # @return [::String]
568
+ # Required. The assistant session to be used to run the assistant.
569
+ # Format:
570
+ # `projects/{project}/locations/{location}/apps/{app}/assistantSessions/{assistant_session}`
571
+ # @!attribute [rw] message
572
+ # @return [::String]
573
+ # Optional. The message to send to the assistant agent. May be empty when
574
+ # `confirmation_response` is set (answering a pending confirmation without
575
+ # adding a new message); at least one of the two must be provided.
576
+ # @!attribute [rw] attached_gcs_uris
577
+ # @return [::Array<::String>]
578
+ # Optional. Cloud Storage URIs for files uploaded by the user during this
579
+ # turn. Example: "gs://cxas-transient-uploads/uuid/prd.pdf"
580
+ # @!attribute [rw] context_token
581
+ # @return [::String]
582
+ # Optional. Opaque onboarding context token returned by
583
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#generate_onboarding_suggestions SessionService.GenerateOnboardingSuggestions}.
584
+ # When set and still fresh, the server reuses the onboarding snapshot
585
+ # computed for the zero state instead of recomputing it for the first
586
+ # conversation turn.
587
+ # @!attribute [rw] confirmation_response
588
+ # @return [::Google::Cloud::Ces::V1beta::AssistantConfirmationResponse]
589
+ # Optional. The user's answer to a pending
590
+ # {::Google::Cloud::Ces::V1beta::AssistantConfirmationRequest AssistantConfirmationRequest}.
591
+ # When set, the server resumes the paused agent with this answer instead of
592
+ # (or in addition to) starting a new prompt turn.
593
+ # @!attribute [rw] client_capabilities
594
+ # @return [::Array<::Google::Cloud::Ces::V1beta::StreamChatAiAssistantRequest::ClientCapability>]
595
+ # Optional. Response features this client can render. The server only emits
596
+ # events that need a capability (e.g. `confirmation_request`) when the
597
+ # capability is declared, so older clients never receive events they would
598
+ # silently drop.
599
+ # @!attribute [rw] operation_completed_event
600
+ # @return [::Google::Cloud::Ces::V1beta::OperationCompletedEvent]
601
+ # Optional. Resumes an assistant session paused waiting for a client-managed
602
+ # long-running operation to complete.
603
+ # @!attribute [rw] resume_from_sequence_number
604
+ # @return [::Integer]
605
+ # Optional. Optional cursor to resume and replay events from an in-flight or
606
+ # completed turn.
607
+ # @!attribute [rw] attach_only
608
+ # @return [::Boolean]
609
+ # Optional. Optional flag to attach to an existing in-flight turn without
610
+ # submitting a new message.
611
+ class StreamChatAiAssistantRequest
612
+ include ::Google::Protobuf::MessageExts
613
+ extend ::Google::Protobuf::MessageExts::ClassMethods
614
+
615
+ # Response features a client can declare.
616
+ module ClientCapability
617
+ # Unspecified capability; ignored.
618
+ CLIENT_CAPABILITY_UNSPECIFIED = 0
619
+
620
+ # The client renders
621
+ # {::Google::Cloud::Ces::V1beta::AssistantConfirmationRequest AssistantConfirmationRequest}
622
+ # cards and answers them via `confirmation_response`.
623
+ CONFIRMATION_CARDS = 1
624
+
625
+ # The client manages long-running operations out-of-band by polling the
626
+ # operation and sending `operation_completed_event` to resume the turn.
627
+ # If not declared, the server manages LRO polling and completes the turn
628
+ # inline.
629
+ CLIENT_MANAGED_LRO = 2
630
+ end
631
+ end
632
+
633
+ # A single personalized onboarding suggestion chip for Arc's
634
+ # zero state.
635
+ # @!attribute [rw] seed_prompt
636
+ # @return [::String]
637
+ # Prefill the composer with this text; the user reviews and sends.
638
+ #
639
+ # Note: The following fields are mutually exclusive: `seed_prompt`, `load_session`, `send_message`. If a field in that set is populated, all other fields in the set will automatically be cleared.
640
+ # @!attribute [rw] load_session
641
+ # @return [::Google::Cloud::Ces::V1beta::AssistantSuggestion::LoadSession]
642
+ # Open an existing assistant session.
643
+ #
644
+ # Note: The following fields are mutually exclusive: `load_session`, `seed_prompt`, `send_message`. If a field in that set is populated, all other fields in the set will automatically be cleared.
645
+ # @!attribute [rw] send_message
646
+ # @return [::String]
647
+ # Prefill the composer with this text and submit immediately. Only used
648
+ # for quick-reply chips inside an active onboarding conversation.
649
+ #
650
+ # Note: The following fields are mutually exclusive: `send_message`, `seed_prompt`, `load_session`. If a field in that set is populated, all other fields in the set will automatically be cleared.
651
+ # @!attribute [rw] suggestion_id
652
+ # @return [::String]
653
+ # Stable identifier for this suggestion, round-tripped by clients in
654
+ # interaction logging.
655
+ # @!attribute [rw] label
656
+ # @return [::String]
657
+ # Chip label shown to the user (at most 60 characters).
658
+ # @!attribute [rw] rationale
659
+ # @return [::String]
660
+ # Optional short explanation of why this suggestion is shown (tooltip /
661
+ # rationale popover).
662
+ # @!attribute [rw] icon
663
+ # @return [::Google::Cloud::Ces::V1beta::AssistantSuggestion::Icon]
664
+ # Icon hint for the chip.
665
+ # @!attribute [rw] source
666
+ # @return [::Google::Cloud::Ces::V1beta::AssistantSuggestion::Source]
667
+ # How this suggestion was produced.
668
+ # @!attribute [rw] candidate_type
669
+ # @return [::String]
670
+ # Rule-table candidate type in kebab-case (e.g. "resume-pending-review"),
671
+ # for metrics.
672
+ class AssistantSuggestion
673
+ include ::Google::Protobuf::MessageExts
674
+ extend ::Google::Protobuf::MessageExts::ClassMethods
675
+
676
+ # Parameters for the load_session action.
677
+ # @!attribute [rw] assistant_session_id
678
+ # @return [::String]
679
+ # Identifier of the assistant session to open (the final segment of the
680
+ # AssistantSession resource name).
681
+ class LoadSession
682
+ include ::Google::Protobuf::MessageExts
683
+ extend ::Google::Protobuf::MessageExts::ClassMethods
684
+ end
685
+
686
+ # Icon hint for the chip.
687
+ module Icon
688
+ # Unspecified icon.
689
+ ICON_UNSPECIFIED = 0
690
+
691
+ # Resume a previous session.
692
+ RESUME = 1
693
+
694
+ # Build something new.
695
+ BUILD = 2
696
+
697
+ # Evaluation-related suggestion.
698
+ EVALUATE = 3
699
+
700
+ # Deployment-related suggestion.
701
+ DEPLOY = 4
702
+
703
+ # Exploration / discovery suggestion.
704
+ EXPLORE = 5
705
+
706
+ # Fix an error or failing state.
707
+ FIX = 6
708
+ end
709
+
710
+ # How this suggestion was produced.
711
+ module Source
712
+ # Unspecified source.
713
+ SOURCE_UNSPECIFIED = 0
714
+
715
+ # Deterministic rule-table candidate with template phrasing.
716
+ RULE = 1
717
+
718
+ # Rule-table candidate re-ranked and phrased by the LLM phrasing step.
719
+ LLM_RANKED = 2
720
+ end
721
+ end
722
+
723
+ # Request message for
724
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#generate_onboarding_suggestions SessionService.GenerateOnboardingSuggestions}.
725
+ # @!attribute [rw] name
726
+ # @return [::String]
727
+ # Required. The app whose zero state is being rendered.
728
+ # Format: `projects/{project}/locations/{location}/apps/{app}`
729
+ # @!attribute [rw] max_suggestions
730
+ # @return [::Integer]
731
+ # Optional. Maximum number of suggestions to return. Defaults to 4 when
732
+ # unset.
733
+ class GenerateOnboardingSuggestionsRequest
734
+ include ::Google::Protobuf::MessageExts
735
+ extend ::Google::Protobuf::MessageExts::ClassMethods
736
+ end
737
+
738
+ # Response message for
739
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#generate_onboarding_suggestions SessionService.GenerateOnboardingSuggestions}.
740
+ # @!attribute [rw] user_profile
741
+ # @return [::Google::Cloud::Ces::V1beta::GenerateOnboardingSuggestionsResponse::UserProfile]
742
+ # Classification of the requesting user's history.
743
+ # @!attribute [rw] suggestions
744
+ # @return [::Array<::Google::Cloud::Ces::V1beta::AssistantSuggestion>]
745
+ # Personalized suggestions, ranked most relevant first.
746
+ # @!attribute [rw] context_token
747
+ # @return [::String]
748
+ # Opaque token capturing the onboarding snapshot used to generate these
749
+ # suggestions. Clients echo it on the first
750
+ # {::Google::Cloud::Ces::V1beta::StreamChatAiAssistantRequest StreamChatAiAssistantRequest}
751
+ # so the server can reuse the snapshot.
752
+ class GenerateOnboardingSuggestionsResponse
753
+ include ::Google::Protobuf::MessageExts
754
+ extend ::Google::Protobuf::MessageExts::ClassMethods
755
+
756
+ # Classification of the requesting user's history with the assistant in
757
+ # this app.
758
+ module UserProfile
759
+ # Unspecified profile.
760
+ USER_PROFILE_UNSPECIFIED = 0
761
+
762
+ # No assistant sessions containing messages.
763
+ NEW = 1
764
+
765
+ # One or two assistant sessions containing messages.
766
+ EXPLORING = 2
767
+
768
+ # More than two assistant sessions containing messages.
769
+ RETURNING = 3
770
+ end
771
+ end
772
+
773
+ # A streamed fragment of a document artifact (e.g. a markdown TDD) that the
774
+ # assistant is generating. Content deltas stream while the document is being
775
+ # written so clients can render a live preview; the FINALIZED chunk carries
776
+ # the GCS URI once the file has been persisted.
777
+ # @!attribute [rw] artifact_id
778
+ # @return [::String]
779
+ # Identifier of the artifact, stable across all chunks of one artifact
780
+ # within the stream.
781
+ # @!attribute [rw] display_name
782
+ # @return [::String]
783
+ # The file name shown to the user, e.g. "hotel_booking_tdd.md". Set on
784
+ # STARTED (and repeated on FINALIZED).
785
+ # @!attribute [rw] mime_type
786
+ # @return [::String]
787
+ # The IANA media type of the artifact content, e.g. "text/markdown".
788
+ # @!attribute [rw] content_delta
789
+ # @return [::String]
790
+ # Incremental artifact content. Set on DELTA chunks.
791
+ # @!attribute [rw] gcs_uri
792
+ # @return [::String]
793
+ # The GCS object the artifact was persisted to. Set on FINALIZED chunks.
794
+ # @!attribute [rw] state
795
+ # @return [::Google::Cloud::Ces::V1beta::ArtifactChunk::State]
796
+ # Lifecycle position of this chunk.
797
+ class ArtifactChunk
798
+ include ::Google::Protobuf::MessageExts
799
+ extend ::Google::Protobuf::MessageExts::ClassMethods
800
+
801
+ # Lifecycle position of this chunk within the artifact's stream.
802
+ module State
803
+ # Unused default.
804
+ STATE_UNSPECIFIED = 0
805
+
806
+ # The assistant started generating the artifact.
807
+ STARTED = 1
808
+
809
+ # A content increment; content_delta is set.
810
+ DELTA = 2
811
+
812
+ # The artifact was persisted; gcs_uri is set.
813
+ FINALIZED = 3
814
+
815
+ # Generation or persistence failed; the artifact was not saved.
816
+ FAILED = 4
817
+
818
+ # The document finished streaming: its content was fully delivered via
819
+ # content_delta chunks. Persistence may still follow; a FINALIZED chunk
820
+ # with a gcs_uri is sent if and when the artifact is saved.
821
+ CLOSED = 5
822
+ end
823
+ end
824
+
825
+ # Structured clarification options the assistant asks the user to choose
826
+ # among, transduced server-side out of the model's turn (the option block is
827
+ # stripped from the streamed and persisted text). The console renders a
828
+ # keyboard-navigable option list docked above the composer.
829
+ # @!attribute [rw] questions
830
+ # @return [::Array<::Google::Cloud::Ces::V1beta::OptionQuestionsChunk::Question>]
831
+ # The questions asked this turn. More than one entry drives the console's
832
+ # "1 of N" pager.
833
+ class OptionQuestionsChunk
834
+ include ::Google::Protobuf::MessageExts
835
+ extend ::Google::Protobuf::MessageExts::ClassMethods
836
+
837
+ # A single selectable option.
838
+ # @!attribute [rw] title
839
+ # @return [::String]
840
+ # Short plain-text option title (no markdown, no numbering).
841
+ # @!attribute [rw] details
842
+ # @return [::String]
843
+ # Optional trade-off details shown as secondary text.
844
+ # @!attribute [rw] submit_text
845
+ # @return [::String]
846
+ # Optional message text to send when the option is chosen; defaults to
847
+ # `title` when empty.
848
+ class Option
849
+ include ::Google::Protobuf::MessageExts
850
+ extend ::Google::Protobuf::MessageExts::ClassMethods
851
+ end
852
+
853
+ # One question with its options.
854
+ # @!attribute [rw] question
855
+ # @return [::String]
856
+ # The question header text.
857
+ # @!attribute [rw] options
858
+ # @return [::Array<::Google::Cloud::Ces::V1beta::OptionQuestionsChunk::Option>]
859
+ # The selectable options, in presentation order.
860
+ class Question
861
+ include ::Google::Protobuf::MessageExts
862
+ extend ::Google::Protobuf::MessageExts::ClassMethods
863
+ end
864
+ end
865
+
866
+ # A blocking question or confirmation the assistant needs answered before an
867
+ # agent action can proceed. The requesting agent is paused and resumes only
868
+ # when the answer arrives on a later
869
+ # {::Google::Cloud::Ces::V1beta::StreamChatAiAssistantRequest#confirmation_response StreamChatAiAssistantRequest.confirmation_response}.
870
+ # @!attribute [rw] confirmation_id
871
+ # @return [::String]
872
+ # Identifier correlating this request with its response. Opaque to
873
+ # clients; must be echoed verbatim on the answering request.
874
+ # @!attribute [rw] context
875
+ # @return [::String]
876
+ # Context describing what is being confirmed (e.g. the action the agent
877
+ # wants to take, or the question it needs answered). Rendered as plain
878
+ # text, not Markdown.
879
+ # @!attribute [rw] positive_label
880
+ # @return [::String]
881
+ # Label for the approving action of a binary confirmation (e.g. "Publish").
882
+ # Unset when `questions` is populated.
883
+ # @!attribute [rw] negative_label
884
+ # @return [::String]
885
+ # Label for the declining action of a binary confirmation (e.g. "Not yet").
886
+ # Unset when `questions` is populated.
887
+ # @!attribute [rw] questions
888
+ # @return [::Array<::Google::Cloud::Ces::V1beta::OptionQuestionsChunk::Question>]
889
+ # Multi-choice form of the confirmation. When populated, the card renders
890
+ # a selectable option list and the chosen option's submit_text (or
891
+ # free-form user text) is returned as
892
+ # {::Google::Cloud::Ces::V1beta::AssistantConfirmationResponse#answer_text AssistantConfirmationResponse.answer_text}.
893
+ # @!attribute [rw] tool
894
+ # @return [::String]
895
+ # Name of the tool call the agent paused on (e.g. "update_app"), for the
896
+ # card header. Unset for pure questions.
897
+ # @!attribute [rw] agent_name
898
+ # @return [::String]
899
+ # Display label of the agent that raised the confirmation (e.g.
900
+ # `"Contract Architect"`), for the card header.
901
+ # @!attribute [rw] expire_time
902
+ # @return [::Google::Protobuf::Timestamp]
903
+ # Time after which this confirmation can no longer be answered. An expired
904
+ # card renders as inactive, and the server declines the confirmation on the
905
+ # next turn so the paused agent does not wait indefinitely.
906
+ class AssistantConfirmationRequest
907
+ include ::Google::Protobuf::MessageExts
908
+ extend ::Google::Protobuf::MessageExts::ClassMethods
909
+ end
910
+
911
+ # The user's answer to an
912
+ # {::Google::Cloud::Ces::V1beta::AssistantConfirmationRequest AssistantConfirmationRequest},
913
+ # sent on the next
914
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#stream_chat_ai_assistant SessionService.StreamChatAiAssistant}
915
+ # call to resume the paused agent.
916
+ # @!attribute [rw] confirmed
917
+ # @return [::Boolean]
918
+ # Binary answer: true approves the paused action, false declines it.
919
+ #
920
+ # Note: The following fields are mutually exclusive: `confirmed`, `answer_text`. If a field in that set is populated, all other fields in the set will automatically be cleared.
921
+ # @!attribute [rw] answer_text
922
+ # @return [::String]
923
+ # The chosen option's submit_text, or free-form user text. The paused
924
+ # action is cancelled and the text is handed to the agent to act on.
925
+ #
926
+ # Note: The following fields are mutually exclusive: `answer_text`, `confirmed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
927
+ # @!attribute [rw] confirmation_id
928
+ # @return [::String]
929
+ # The
930
+ # {::Google::Cloud::Ces::V1beta::AssistantConfirmationRequest#confirmation_id AssistantConfirmationRequest.confirmation_id}
931
+ # being answered.
932
+ class AssistantConfirmationResponse
933
+ include ::Google::Protobuf::MessageExts
934
+ extend ::Google::Protobuf::MessageExts::ClassMethods
935
+ end
936
+
937
+ # Event sent by the client or background worker to resume an assistant session
938
+ # after an asynchronous Long-Running Operation (LRO) completes.
939
+ # @!attribute [rw] operation_name
940
+ # @return [::String]
941
+ # The operation resource name (e.g. `operations/{op}`).
942
+ # @!attribute [rw] target_resource_name
943
+ # @return [::String]
944
+ # The primary resource targeted or produced by the operation
945
+ # (e.g. evaluation run ID, app ID, dataset ID).
946
+ # @!attribute [rw] operation_type
947
+ # @return [::String]
948
+ # The operation type or tool name (e.g. "run_evaluation", "copy_app",
949
+ # "export_app").
950
+ # @!attribute [rw] status
951
+ # @return [::String]
952
+ # Status of the operation run (e.g. "SUCCEEDED", "FAILED", "CANCELLED").
953
+ # @!attribute [rw] deduplication_token
954
+ # @return [::String]
955
+ # Optional deduplication token (e.g. UUID) to prevent duplicate turn
956
+ # execution from concurrent browser tabs.
957
+ # @!attribute [rw] error
958
+ # @return [::Google::Rpc::Status]
959
+ # Optional canonical error status if the operation failed.
960
+ # @!attribute [rw] metadata
961
+ # @return [::Google::Protobuf::Struct]
962
+ # Optional structured result metadata (e.g. pass_rate, total_examples,
963
+ # export_uri).
964
+ class OperationCompletedEvent
965
+ include ::Google::Protobuf::MessageExts
966
+ extend ::Google::Protobuf::MessageExts::ClassMethods
967
+ end
968
+
969
+ # Turn-level metadata and intent categorization.
970
+ # @!attribute [rw] contract_related
971
+ # @return [::Boolean]
972
+ # Indicates whether this assistant turn was contract-related (e.g. contract
973
+ # drafting, alignment, extraction, or revision).
974
+ # @!attribute [rw] contract_finalized
975
+ # @return [::Boolean]
976
+ # Set on the final artifact event of a turn whose contract draft was
977
+ # published (a revision was activated). Terminal for the clarification
978
+ # flow of this draft: contract_progress is authoritative and complete.
979
+ # @!attribute [rw] contract_streaming_phase
980
+ # @return [::Google::Cloud::Ces::V1beta::TurnMetadata::ContractStreamingPhase]
981
+ # Set only on in-flight progress estimates emitted while a contract
982
+ # artifact fence is streaming, and on the revision-turn-start event.
983
+ # Unset on authoritative payloads.
984
+ # @!attribute [rw] contract_draft_complete
985
+ # @return [::Boolean]
986
+ # Set on the terminal event of a contract draft whose every placeholder is
987
+ # resolved (contract_progress is 100%), whether or not the draft was
988
+ # published. Clients complete and dismiss the contract progress display on
989
+ # it; publication is reported separately by contract_finalized.
990
+ class TurnMetadata
991
+ include ::Google::Protobuf::MessageExts
992
+ extend ::Google::Protobuf::MessageExts::ClassMethods
993
+
994
+ # Streaming phase of the contract progress payload.
995
+ module ContractStreamingPhase
996
+ # The payload is authoritative (computed from a complete contract
997
+ # document, a persisted snapshot, or the pre-draft state). Clients must
998
+ # replace any previously received progress with it.
999
+ CONTRACT_STREAMING_PHASE_UNSPECIFIED = 0
1000
+
1001
+ # An initial contract draft is streaming. contract_progress is an
1002
+ # in-flight estimate: non-decreasing within one artifact fence, capped
1003
+ # below the authoritative range, with pillar_breakdowns carrying
1004
+ # total_item_count == 0 to mark estimated pillar states.
1005
+ DRAFTING = 1
1006
+
1007
+ # A revision of an existing contract is streaming (for example after an
1008
+ # annotation submission). Same estimate semantics as DRAFTING.
1009
+ REVISING = 2
1010
+ end
1011
+ end
1012
+
1013
+ # Response message for
1014
+ # {::Google::Cloud::Ces::V1beta::SessionService::Client#stream_chat_ai_assistant SessionService.StreamChatAiAssistant}.
1015
+ # @!attribute [rw] text_chunk
1016
+ # @return [::String]
1017
+ # Text Token (for streaming Gemini responses word-by-word).
1018
+ #
1019
+ # Note: The following fields are mutually exclusive: `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1020
+ # @!attribute [rw] status
1021
+ # @return [::Google::Rpc::Status]
1022
+ # Simple status update.
1023
+ #
1024
+ # Note: The following fields are mutually exclusive: `status`, `text_chunk`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1025
+ # @!attribute [rw] thought_chunk
1026
+ # @return [::String]
1027
+ # Thought text chunk (agent's reasoning before generating response).
1028
+ #
1029
+ # Note: The following fields are mutually exclusive: `thought_chunk`, `text_chunk`, `status`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1030
+ # @!attribute [rw] tool_call
1031
+ # @return [::Google::Cloud::Ces::V1beta::ToolCall]
1032
+ # Tool call execution event.
1033
+ #
1034
+ # Note: The following fields are mutually exclusive: `tool_call`, `text_chunk`, `status`, `thought_chunk`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1035
+ # @!attribute [rw] tool_response
1036
+ # @return [::Google::Cloud::Ces::V1beta::ToolResponse]
1037
+ # Tool call response event.
1038
+ #
1039
+ # Note: The following fields are mutually exclusive: `tool_response`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1040
+ # @!attribute [rw] artifact_chunk
1041
+ # @return [::Google::Cloud::Ces::V1beta::ArtifactChunk]
1042
+ # Generated-document artifact event (live preview deltas + final GCS
1043
+ # pointer).
1044
+ #
1045
+ # Note: The following fields are mutually exclusive: `artifact_chunk`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1046
+ # @!attribute [rw] option_questions_chunk
1047
+ # @return [::Google::Cloud::Ces::V1beta::OptionQuestionsChunk]
1048
+ # Structured clarification options parsed out of the model turn. The
1049
+ # console renders these as a selectable option list instead of raw text.
1050
+ #
1051
+ # Note: The following fields are mutually exclusive: `option_questions_chunk`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1052
+ # @!attribute [rw] confirmation_request
1053
+ # @return [::Google::Cloud::Ces::V1beta::AssistantConfirmationRequest]
1054
+ # A blocking confirmation the agent paused on. The agent resumes when the
1055
+ # answer arrives on a later request's `confirmation_response`. Only sent
1056
+ # to clients that declared the CONFIRMATION_CARDS capability on the
1057
+ # request.
1058
+ #
1059
+ # Note: The following fields are mutually exclusive: `confirmation_request`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `session_checkpoint`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1060
+ # @!attribute [rw] session_checkpoint
1061
+ # @return [::Google::Cloud::Ces::V1beta::SessionCheckpoint]
1062
+ # Session checkpoint/compaction recap event containing user intent and
1063
+ # rolling summary.
1064
+ #
1065
+ # Note: The following fields are mutually exclusive: `session_checkpoint`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `resume_snapshot`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1066
+ # @!attribute [rw] resume_snapshot
1067
+ # @return [::Google::Cloud::Ces::V1beta::TurnResumeSnapshot]
1068
+ # A compacted replay of an in-flight turn, sent as the first event of
1069
+ # every attach or resume before any live event. The client replaces any
1070
+ # locally rendered state for this turn with the snapshot's contents.
1071
+ #
1072
+ # Note: The following fields are mutually exclusive: `resume_snapshot`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `handoff`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1073
+ # @!attribute [rw] handoff
1074
+ # @return [::Google::Cloud::Ces::V1beta::TurnHandoffEvent]
1075
+ # Tells the client to silently reconnect with
1076
+ # resume_from_sequence_number: the task serving this stream is going
1077
+ # away and the turn will continue elsewhere. Not an error; the stream
1078
+ # completes normally after this event.
1079
+ #
1080
+ # Note: The following fields are mutually exclusive: `handoff`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `turn_completed`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1081
+ # @!attribute [rw] turn_completed
1082
+ # @return [::Google::Cloud::Ces::V1beta::TurnCompletedEvent]
1083
+ # The turn has ended. Sent as the last event of every turn, on the original
1084
+ # stream and on every attached or resumed stream, so clients can end the
1085
+ # turn on an explicit signal instead of inferring it from stream closure.
1086
+ #
1087
+ # Note: The following fields are mutually exclusive: `turn_completed`, `text_chunk`, `status`, `thought_chunk`, `tool_call`, `tool_response`, `artifact_chunk`, `option_questions_chunk`, `confirmation_request`, `session_checkpoint`, `resume_snapshot`, `handoff`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1088
+ # @!attribute [rw] event_id
1089
+ # @return [::String]
1090
+ # Unique identifier for the event.
1091
+ # @!attribute [rw] event_time
1092
+ # @return [::Google::Protobuf::Timestamp]
1093
+ # Timestamp when the event occurred.
1094
+ # @!attribute [rw] ui_event
1095
+ # @return [::Google::Cloud::Ces::V1beta::UiEvent]
1096
+ # Optional. UI event payload.
1097
+ # @!attribute [rw] turn_metadata
1098
+ # @return [::Google::Cloud::Ces::V1beta::TurnMetadata]
1099
+ # Optional. Turn-level metadata and intent categorization.
1100
+ # @!attribute [rw] sequence_number
1101
+ # @return [::Integer]
1102
+ # Optional. Monotonically increasing sequence number for this session turn.
1103
+ # @!attribute [rw] turn_in_progress
1104
+ # @return [::Boolean]
1105
+ # Optional. Indicates whether the turn is still actively running in the
1106
+ # background.
1107
+ class StreamChatAiAssistantResponse
1108
+ include ::Google::Protobuf::MessageExts
1109
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1110
+ end
1111
+
1112
+ # Request to cancel an assistant session's in-flight turn.
1113
+ # @!attribute [rw] name
1114
+ # @return [::String]
1115
+ # Required. The assistant session whose in-flight turn to cancel.
1116
+ # @!attribute [rw] turn_id
1117
+ # @return [::String]
1118
+ # Optional. The turn to cancel; empty cancels whichever turn is running. A
1119
+ # cancel naming a turn that is no longer the running one is a no-op.
1120
+ class CancelAssistantTurnRequest
1121
+ include ::Google::Protobuf::MessageExts
1122
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1123
+ end
1124
+
1125
+ # Response for CancelAssistantTurn.
1126
+ # @!attribute [rw] cancelled
1127
+ # @return [::Boolean]
1128
+ # Whether an in-flight turn was found and asked to stop (directly on this
1129
+ # task, or through an epoch preemption for a turn hosted elsewhere).
1130
+ class CancelAssistantTurnResponse
1131
+ include ::Google::Protobuf::MessageExts
1132
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1133
+ end
1134
+
1135
+ # A compacted replay of an in-flight turn: everything needed to render the
1136
+ # turn's visible output so far, plus the position live events continue from.
1137
+ # @!attribute [rw] turn_id
1138
+ # @return [::String]
1139
+ # Identifies the turn being attached to.
1140
+ # @!attribute [rw] resolved_sequence_number
1141
+ # @return [::Integer]
1142
+ # The position this snapshot represents. Live events follow with
1143
+ # sequence_number strictly greater than this. When lower than the
1144
+ # resume_from_sequence_number the client requested, flushed progress lags
1145
+ # what the client already rendered: the client must discard its rendered
1146
+ # content of this turn beyond this position before applying the snapshot.
1147
+ # @!attribute [rw] events
1148
+ # @return [::Array<::Google::Cloud::Ces::V1beta::StreamChatAiAssistantResponse>]
1149
+ # Compacted events reconstructing the turn's visible output, in render
1150
+ # order, using the same event shapes as live streaming.
1151
+ # @!attribute [rw] orphan_deadline_time
1152
+ # @return [::Google::Protobuf::Timestamp]
1153
+ # When the turn will be wound down if no client remains attached.
1154
+ class TurnResumeSnapshot
1155
+ include ::Google::Protobuf::MessageExts
1156
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1157
+ end
1158
+
1159
+ # Emitted before this task stops serving the stream mid-turn (e.g. a server
1160
+ # restart). The turn's state is persisted; a reconnect carrying
1161
+ # resume_from_sequence_number continues it on another task.
1162
+ # @!attribute [rw] turn_id
1163
+ # @return [::String]
1164
+ # Identifies the turn to resume.
1165
+ # @!attribute [rw] reason
1166
+ # @return [::Google::Cloud::Ces::V1beta::TurnHandoffEvent::Reason]
1167
+ # Why the stream is handing off.
1168
+ class TurnHandoffEvent
1169
+ include ::Google::Protobuf::MessageExts
1170
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1171
+
1172
+ # Why the stream is handing off.
1173
+ module Reason
1174
+ # Unspecified.
1175
+ REASON_UNSPECIFIED = 0
1176
+
1177
+ # The serving task is shutting down (release push or rescheduling).
1178
+ SERVER_RESTART = 1
1179
+ end
1180
+ end
1181
+
1182
+ # Terminal event of a turn (see StreamChatAiAssistantResponse.turn_completed).
1183
+ # @!attribute [rw] turn_id
1184
+ # @return [::String]
1185
+ # Identifier of the turn that ended; matches
1186
+ # TurnResumeSnapshot.turn_id and ActiveTurnInfo.turn_id.
1187
+ # @!attribute [rw] reason
1188
+ # @return [::Google::Cloud::Ces::V1beta::TurnCompletedEvent::Reason]
1189
+ # Why the turn ended.
1190
+ # @!attribute [rw] final_sequence_number
1191
+ # @return [::Integer]
1192
+ # Sequence number of the last event the turn produced. A client whose cursor
1193
+ # is lower missed content and should reload the session to see it.
1194
+ class TurnCompletedEvent
1195
+ include ::Google::Protobuf::MessageExts
1196
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1197
+
1198
+ # Why the turn ended, so a client that attached late can word the outcome
1199
+ # instead of guessing from an empty stream.
1200
+ module Reason
1201
+ # Unspecified.
1202
+ REASON_UNSPECIFIED = 0
1203
+
1204
+ # The turn ran to completion; the session holds its committed output.
1205
+ COMPLETED = 1
1206
+
1207
+ # No task was driving the turn any more; it was sealed to a committed
1208
+ # partial and cannot be continued.
1209
+ ABANDONED = 2
1210
+
1211
+ # This server does not serve attach or resume for the session, so nothing
1212
+ # was tailed; the client should reload the session instead.
1213
+ RESUME_UNAVAILABLE = 3
1214
+ end
1215
+ end
1216
+
479
1217
  # AudioEncoding specifies the encoding format for audio data.
480
1218
  module AudioEncoding
481
1219
  # Unspecified audio encoding.