From cdbe7c4ed2cd85174356dad20308fcdd92c83c31 Mon Sep 17 00:00:00 2001 From: Diogo Soares Rodrigues Date: Sun, 26 Jul 2026 22:52:10 -0300 Subject: [PATCH] feat(ai): model modern Cursor exec wire protocol in agent.proto (cherry picked from commit 8f26f5f04c64ce2fd198a1526b1a2a26729afef9) --- .../ai/src/providers/cursor/proto/agent.proto | 902 + packages/catalog/package.json | 3 +- .../src/discovery/cursor-gen/agent_pb.ts | 21421 +++++++++------- 3 files changed, 13526 insertions(+), 8800 deletions(-) diff --git a/packages/ai/src/providers/cursor/proto/agent.proto b/packages/ai/src/providers/cursor/proto/agent.proto index 766ee0c94..49cbb4775 100644 --- a/packages/ai/src/providers/cursor/proto/agent.proto +++ b/packages/ai/src/providers/cursor/proto/agent.proto @@ -197,6 +197,7 @@ message ReadLintsToolError { message McpToolError { string error = 1; + string read_tool_def_reminder = 2; } // Result for MCP tool calls (separate from exec results) @@ -212,6 +213,7 @@ message McpToolResult { message McpToolCall { McpArgs args = 1; McpToolResult result = 2; + optional string description = 3; } message SemSearchToolCall { @@ -1098,6 +1100,13 @@ message BackgroundShellSpawnArgs { ShellCommandParsingResult parsing_result = 4; optional SandboxPolicy sandbox_policy = 5; bool enable_write_shell_stdin_tool = 6; + optional string description = 7; + optional CommandClassifierResult classifier_result = 8; + optional ShellOutputNotificationConfig output_notification = 9; + optional SmartModeApproval smart_mode_approval = 10; + optional ShellHookApprovalRequirement hook_approval_requirement = 11; + bool skip_approval = 12; + optional string conversation_id = 13; } // Result of spawning a background shell @@ -1646,6 +1655,7 @@ message ExecClientThrow { uint32 id = 1; string error = 2; optional string stack_trace = 3; + optional string error_code = 4; } message ExecClientHeartbeat { @@ -1703,7 +1713,31 @@ message ExecServerMessage { RecordScreenArgs record_screen_args = 21; ComputerUseArgs computer_use_args = 22; WriteShellStdinArgs write_shell_stdin_args = 23; + ReadArgs redacted_read_args = 29; + McpStateExecArgs mcp_state_exec_args = 36; + ExecuteHookArgs execute_hook_args = 27; + SubagentArgs subagent_args = 28; + ForceBackgroundShellArgs force_background_shell_args = 30; + ForceBackgroundSubagentArgs force_background_subagent_args = 31; + SubagentAwaitArgs subagent_await_args = 37; + SmartModeClassifierArgs smart_mode_classifier_args = 38; + CanvasDiagnosticsArgs canvas_diagnostics_args = 40; + ShellAllowlistPrecheckArgs shell_allowlist_precheck_args = 41; + McpAllowlistPrecheckArgs mcp_allowlist_precheck_args = 42; + WebFetchAllowlistPrecheckArgs web_fetch_allowlist_precheck_args = 43; + GetDiffRequest git_diff_request = 44; + PiReadExecArgs pi_read_args = 45; + PiBashExecArgs pi_bash_args = 46; + PiEditExecArgs pi_edit_args = 47; + PiWriteExecArgs pi_write_args = 48; + PiGrepExecArgs pi_grep_args = 49; + PiFindExecArgs pi_find_args = 50; + PiLsExecArgs pi_ls_args = 51; + ShellArgs mini_swe_agent_bash_args = 52; + ConversationSearchArgs conversation_search_args = 53; + AgentStoreConflictArgs agent_store_conflict_args = 54; } + optional bool accept_hook_additional_contexts = 55; } message ExecClientMessage { @@ -1728,7 +1762,32 @@ message ExecClientMessage { RecordScreenResult record_screen_result = 21; ComputerUseResult computer_use_result = 22; WriteShellStdinResult write_shell_stdin_result = 23; + ReadResult redacted_read_result = 29; + McpStateExecResult mcp_state_exec_result = 36; + ExecuteHookResult execute_hook_result = 27; + SubagentResult subagent_result = 28; + ForceBackgroundShellResult force_background_shell_result = 30; + ForceBackgroundSubagentResult force_background_subagent_result = 31; + SubagentAwaitResult subagent_await_result = 37; + SmartModeClassifierResult smart_mode_classifier_result = 38; + CanvasDiagnosticsResult canvas_diagnostics_result = 40; + ShellAllowlistPrecheckResult shell_allowlist_precheck_result = 41; + McpAllowlistPrecheckResult mcp_allowlist_precheck_result = 42; + WebFetchAllowlistPrecheckResult web_fetch_allowlist_precheck_result = 43; + GetDiffResponse git_diff_response = 44; + PiReadExecResult pi_read_result = 46; + PiBashExecResult pi_bash_result = 47; + PiEditExecResult pi_edit_result = 48; + PiWriteExecResult pi_write_result = 49; + PiGrepExecResult pi_grep_result = 50; + PiFindExecResult pi_find_result = 51; + PiLsExecResult pi_ls_result = 52; + ConversationSearchResult conversation_search_result = 53; + AgentStoreConflictResult agent_store_conflict_result = 54; + ShellResult mini_swe_agent_bash_result = 55; } + optional int32 local_execution_time_ms = 39; + repeated HookAdditionalContext hook_additional_contexts = 45; } message FetchArgs { @@ -1807,6 +1866,7 @@ message GrepArgs { optional bool sort_ascending = 13; string tool_call_id = 14; optional SandboxPolicy sandbox_policy = 15; + optional int32 offset = 16; } message GrepResult { @@ -1848,6 +1908,8 @@ message GrepCountResult { bool client_truncated = 4; // true if we truncated the output from the ripgrep call itself bool ripgrep_truncated = 5; + optional int32 head_limit_applied = 6; + optional int32 offset_applied = 7; } message GrepFileCount { @@ -1864,6 +1926,8 @@ message GrepFilesResult { bool client_truncated = 3; // true if we truncated the output from the ripgrep call itself bool ripgrep_truncated = 4; + optional int32 head_limit_applied = 5; + optional int32 offset_applied = 6; } message GrepContentResult { @@ -1877,6 +1941,8 @@ message GrepContentResult { bool client_truncated = 4; // true if we truncated the output from the ripgrep call itself bool ripgrep_truncated = 5; + optional int32 head_limit_applied = 6; + optional int32 offset_applied = 7; } message GrepFileMatch { @@ -2014,6 +2080,10 @@ message McpArgs { string tool_call_id = 3; string provider_identifier = 4; string tool_name = 5; + optional SmartModeApproval smart_mode_approval = 6; + bool smart_mode_approval_only = 7; + bool skip_approval = 8; + string server_identifier = 9; } message McpResult { @@ -2023,6 +2093,8 @@ message McpResult { McpRejected rejected = 3; McpPermissionDenied permission_denied = 4; McpToolNotFound tool_not_found = 5; + McpServerNotFound server_not_found = 6; + McpApproved approved = 7; } } @@ -2120,6 +2192,8 @@ message ReadMcpResourceExecArgs { string uri = 2; // Optional: when set, the resource will be downloaded to this path relative to the workspace, and the content will not be returned to the model. optional string download_path = 3; + string tool_call_id = 4; + optional SmartModeApproval smart_mode_approval = 5; } // Read MCP resource exec result @@ -2145,6 +2219,7 @@ message ReadMcpResourceSuccess { string text = 5; bytes blob = 6; } + optional OutputLocation output_location = 9; } message ReadMcpResourceError { @@ -2167,6 +2242,7 @@ message McpToolDefinition { string tool_name = 5; string description = 2; bytes input_schema = 3; + optional string input_schema_json = 6; } message McpTools { @@ -2177,6 +2253,7 @@ message McpTools { message McpInstructions { string server_name = 1; string instructions = 2; + string server_identifier = 3; } message McpDescriptor { @@ -2187,11 +2264,17 @@ message McpDescriptor { optional string folder_path = 3; optional string server_use_instructions = 4; repeated McpToolDescriptor tools = 5; + optional string plugin = 7; + optional string marketplace = 8; + optional string plugin_db_id = 9; + optional string marketplace_id = 10; } message McpToolDescriptor { string tool_name = 1; optional string definition_path = 2; + optional string description = 3; + optional string input_schema_json = 5; } message McpFileSystemOptions { @@ -2203,6 +2286,9 @@ message McpFileSystemOptions { message ReadArgs { string path = 1; string tool_call_id = 2; + optional int32 offset = 4; + optional uint32 limit = 5; + optional string encoding_hint = 6; } message ReadResult { @@ -2228,6 +2314,7 @@ message ReadSuccess { string content = 2; bytes data = 5; } + bool range_applied = 8; } message ReadError { @@ -2376,6 +2463,9 @@ message RepositoryIndexingInfo { message RequestContextArgs { optional string notes_session_id = 2; optional string workspace_id = 3; + optional string read_only_pinned_tree_sha = 4; + optional string read_only_plugin_cache_root = 5; + optional bool use_cached = 7; } message RequestContextResult { @@ -2388,6 +2478,7 @@ message RequestContextResult { message RequestContextSuccess { RequestContext request_context = 1; + optional bool served_from_disk_cache = 2; } message RequestContextError { @@ -2807,6 +2898,8 @@ message ShellCommandParsingResult { repeated ShellCommandParsingResult_ExecutableCommand executable_commands = 2; bool has_redirects = 3; bool has_command_substitution = 4; + optional bool all_redirects_are_dev_null = 5; + repeated ShellCommandParsingResult_Redirect redirects = 6; } message ShellCommandParsingResult_ExecutableCommandArg { @@ -2838,6 +2931,13 @@ message ShellArgs { int32 timeout_behavior = 13; // Hard timeout: kill the command after this many ms, even if running in background optional int32 hard_timeout = 14; + optional string description = 15; + optional CommandClassifierResult classifier_result = 16; + bool close_stdin = 17; + optional ShellOutputNotificationConfig output_notification = 18; + optional SmartModeApproval smart_mode_approval = 19; + optional ShellHookApprovalRequirement hook_approval_requirement = 20; + optional string conversation_id = 21; } message ShellResult { @@ -2873,6 +2973,7 @@ message ShellStreamExit { bool aborted = 4; // If aborted is true, this field indicates the reason for the abort optional int32 abort_reason = 5; + optional int32 local_execution_time_ms = 6; } message ShellStreamStart { @@ -2886,6 +2987,7 @@ message ShellStreamBackgrounded { optional uint32 pid = 4; // The ms_to_wait value that was used for backgrounding, for display purposes optional int32 ms_to_wait = 5; + optional ShellBackgroundReason reason = 6; } message ShellStream { @@ -2897,6 +2999,7 @@ message ShellStream { ShellRejected rejected = 5; ShellPermissionDenied permission_denied = 6; ShellStreamBackgrounded backgrounded = 7; + ShellStreamHookContext hook_context = 8; } } @@ -2928,6 +3031,11 @@ message ShellSuccess { optional uint32 pid = 11; // The ms_to_wait value used for backgrounding (for display in result) optional int32 ms_to_wait = 12; + optional int32 local_execution_time_ms = 13; + optional ShellBackgroundReason background_reason = 14; + optional string output_head = 15; + optional string output_tail = 16; + optional uint32 elided_chars = 17; } message ShellFailure { @@ -2947,6 +3055,10 @@ message ShellFailure { optional int32 abort_reason = 10; // Whether the command was aborted (by user or timeout) bool aborted = 11; + optional int32 local_execution_time_ms = 12; + optional string output_head = 13; + optional string output_tail = 14; + optional uint32 elided_chars = 15; } message ShellTimeout { @@ -3242,6 +3354,7 @@ message WriteArgs { bool return_file_content_after_write = 4; // Raw binary data to write. When set, file_text is ignored and the bytes are written directly without any text processing (e.g., line ending normalization). bytes file_bytes = 5; + optional string encoding_hint = 6; } message WriteResult { @@ -3524,3 +3637,792 @@ service LifecycleService { // Asks worker to exit(0) so that a new worker can take his place rpc RenewInstance(Empty) returns (Empty); } + +// ===== Pi exec tools (modern Cursor CLI, ExecServerMessage 45-51) ===== + +message PiTruncation { + bool truncated = 1; + string truncated_by = 2; + uint32 total_lines = 3; + uint32 output_lines = 4; + uint32 output_bytes = 5; + optional uint32 max_lines = 6; + optional uint32 max_bytes = 7; + bool first_line_exceeds_limit = 8; + bool last_line_partial = 9; +} + +message PiEditReplacement { + string old_text = 1; + string new_text = 2; +} + +message PiReadExecArgs { + string path = 1; + optional int32 offset = 2; + optional int32 limit = 3; +} + +message PiReadExecSuccess { + string output = 1; + optional PiTruncation truncation = 2; +} + +message PiReadExecError { + string error = 1; +} + +message PiReadExecResult { + oneof result { + PiReadExecSuccess success = 1; + PiReadExecError error = 2; + } +} + +message PiBashExecArgs { + string command = 1; + optional double timeout = 2; +} + +message PiBashExecSuccess { + string output = 1; + optional PiTruncation truncation = 2; + optional string full_output_path = 3; +} + +message PiBashExecError { + string error = 1; + optional PiTruncation truncation = 2; + optional string full_output_path = 3; +} + +message PiBashExecResult { + oneof result { + PiBashExecSuccess success = 1; + PiBashExecError error = 2; + } +} + +message PiEditExecArgs { + string path = 1; + repeated PiEditReplacement edits = 2; +} + +message PiEditExecSuccess { + string output = 1; + string diff = 2; + string patch = 3; + optional uint32 first_changed_line = 4; +} + +message PiEditExecError { + string error = 1; +} + +message PiEditExecRejected { + string reason = 1; +} + +message PiEditExecResult { + oneof result { + PiEditExecSuccess success = 1; + PiEditExecError error = 2; + PiEditExecRejected rejected = 3; + } +} + +message PiWriteExecArgs { + string path = 1; + string content = 2; +} + +message PiWriteExecSuccess { + string output = 1; +} + +message PiWriteExecError { + string error = 1; +} + +message PiWriteExecRejected { + string reason = 1; +} + +message PiWriteExecResult { + oneof result { + PiWriteExecSuccess success = 1; + PiWriteExecError error = 2; + PiWriteExecRejected rejected = 3; + } +} + +message PiGrepExecArgs { + string pattern = 1; + optional string path = 2; + optional string glob = 3; + optional bool ignore_case = 4; + optional bool literal = 5; + optional int32 context = 6; + optional int32 limit = 7; +} + +message PiGrepExecSuccess { + string output = 1; + optional PiTruncation truncation = 2; + optional uint32 match_limit_reached = 3; + bool lines_truncated = 4; +} + +message PiGrepExecError { + string error = 1; +} + +message PiGrepExecResult { + oneof result { + PiGrepExecSuccess success = 1; + PiGrepExecError error = 2; + } +} + +message PiFindExecArgs { + string pattern = 1; + optional string path = 2; + optional int32 limit = 3; +} + +message PiFindExecSuccess { + string output = 1; + optional PiTruncation truncation = 2; + optional uint32 result_limit_reached = 3; +} + +message PiFindExecError { + string error = 1; +} + +message PiFindExecResult { + oneof result { + PiFindExecSuccess success = 1; + PiFindExecError error = 2; + } +} + +message PiLsExecArgs { + optional string path = 1; + optional int32 limit = 2; +} + +message PiLsExecSuccess { + string output = 1; + optional PiTruncation truncation = 2; + optional uint32 entry_limit_reached = 3; +} + +message PiLsExecError { + string error = 1; +} + +message PiLsExecResult { + oneof result { + PiLsExecSuccess success = 1; + PiLsExecError error = 2; + } +} + +// ===== MCP (modern) ===== + +message McpServerNotFound { + string name = 1; + repeated string available_servers = 2; +} + +message McpApproved { +} + +message McpStateExecArgs { + repeated string server_identifiers = 1; + bool kick_only = 2; +} + +message McpStateServer { + string server_name = 1; + string server_identifier = 2; + optional string plugin = 3; + optional string marketplace = 4; + repeated McpToolDefinition tools = 5; + repeated McpInstructions instructions = 6; + optional string status = 7; +} + +message McpStateSuccess { + repeated McpStateServer servers = 1; +} + +message McpStateError { + string error = 1; +} + +message McpStateRejected { + string reason = 1; +} + +message McpStateExecResult { + oneof result { + McpStateSuccess success = 1; + McpStateError error = 2; + McpStateRejected rejected = 3; + } +} + +// ===== Allowlist prechecks ===== + +enum CommandClassifierResult_SuggestedSandboxMode { + SUGGESTED_SANDBOX_MODE_UNSPECIFIED = 0; + SUGGESTED_SANDBOX_MODE_SANDBOX = 1; + SUGGESTED_SANDBOX_MODE_NO_SANDBOX = 2; + SUGGESTED_SANDBOX_MODE_UNDETERMINED = 3; +} + +message CommandClassifierResult_ClassifiedCommand { + string name = 1; + repeated string arguments = 2; + optional string suggested_allowlist_entry = 3; + repeated string subcommand_tokens = 4; +} + +message CommandClassifierResult { + repeated CommandClassifierResult_ClassifiedCommand commands = 1; + CommandClassifierResult_SuggestedSandboxMode suggested_sandbox_mode = 2; + bool classification_failed = 3; +} + +message ShellCommandParsingResult_Redirect { + string operator = 1; + repeated uint32 destination_fds = 2; + string target_node_type = 3; + optional string target_text = 4; +} + +message ShellAllowlistPrecheckArgs { + string command = 1; + string working_directory = 2; + ShellCommandParsingResult parsing_result = 3; + optional CommandClassifierResult classifier_result = 4; + optional string tool_call_id = 5; +} + +message ShellAllowlistPrecheckResult { + bool allowlisted = 1; +} + +message McpAllowlistPrecheckArgs { + string provider_identifier = 1; + string tool_name = 2; + optional string tool_call_id = 3; +} + +message McpAllowlistPrecheckResult { + bool allowlisted = 1; +} + +message WebFetchAllowlistPrecheckArgs { + string url = 1; + optional string tool_call_id = 2; +} + +message WebFetchAllowlistPrecheckResult { + bool allowlisted = 1; +} + +// ===== Shell (modern additions) ===== + +message SmartModeApproval { + string request_id = 1; + string reason = 2; +} + +message ShellOutputNotificationConfig { + string pattern = 1; + string reason = 2; + optional double debounce = 3; + optional int32 notification_limit = 4; +} + +enum ShellHookApprovalRequirement_Kind { + SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_UNSPECIFIED = 0; + SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_FORCE_PROMPT = 1; +} + +message ShellHookApprovalRequirement { + ShellHookApprovalRequirement_Kind kind = 1; + optional string reason = 2; +} + +enum ShellBackgroundReason { + SHELL_BACKGROUND_REASON_UNSPECIFIED = 0; + SHELL_BACKGROUND_REASON_TIMEOUT = 1; + SHELL_BACKGROUND_REASON_USER_REQUEST = 2; +} + +enum ForceBackgroundShellStatus { + FORCE_BACKGROUND_SHELL_STATUS_UNSPECIFIED = 0; + FORCE_BACKGROUND_SHELL_STATUS_ACCEPTED = 1; + FORCE_BACKGROUND_SHELL_STATUS_NOT_FOUND = 2; +} + +message ForceBackgroundShellArgs { + string tool_call_id = 1; +} + +message ForceBackgroundShellResult { + ForceBackgroundShellStatus status = 1; + optional ShellResult shell_result = 2; +} + +message HookAdditionalContext { + string hook_event_name = 1; + string content = 2; +} + +message ShellStreamHookContext { + repeated HookAdditionalContext hook_additional_contexts = 1; +} + +// ===== Subagents ===== + +enum SubagentBackgroundReason { + SUBAGENT_BACKGROUND_REASON_UNSPECIFIED = 0; + SUBAGENT_BACKGROUND_REASON_AGENT_REQUEST = 1; + SUBAGENT_BACKGROUND_REASON_USER_REQUEST = 2; + SUBAGENT_BACKGROUND_REASON_QUEUED_FOLLOW_UP = 3; +} + +enum ForceBackgroundSubagentStatus { + FORCE_BACKGROUND_SUBAGENT_STATUS_UNSPECIFIED = 0; + FORCE_BACKGROUND_SUBAGENT_STATUS_ACCEPTED = 1; + FORCE_BACKGROUND_SUBAGENT_STATUS_NOT_FOUND = 2; +} + +// Subset: only the fields this client reads. Upstream also defines model_id=3, readonly=5, +// resume_agent_id=6, run_in_background=7, continuation_config=8, parent_conversation_id=9, +// credentials 10-12, interrupt=13, mode=14, fork_agent_id=15, root_parent_conversation_id=16, +// selected_context=17, direct_meta_parent_child_subagent=18, environment=19, cloud_base_branch=20. +// Those decode into unknown fields; do not reuse these numbers. +message SubagentArgs { + string tool_call_id = 1; + string subagent_type = 2; + string prompt = 4; +} + +message SubagentSuccess { + string agent_id = 1; + optional string final_message = 2; + int32 tool_call_count = 3; + SubagentBackgroundReason background_reason = 4; + optional string transcript_path = 5; +} + +message SubagentError { + optional string agent_id = 1; + string error = 2; +} + +message SubagentResult { + oneof result { + SubagentSuccess success = 1; + SubagentError error = 2; + } +} + +message SubagentAwaitArgs { + string agent_id = 1; + uint32 timeout_ms = 2; +} + +message SubagentAwaitComplete { + string agent_id = 1; + optional string transcript_path = 2; + int32 tool_call_count = 3; + optional string final_message = 4; +} + +message SubagentAwaitStillRunning { + string agent_id = 1; + optional string transcript_path = 2; +} + +message SubagentAwaitNotFound { + string agent_id = 1; +} + +message SubagentAwaitError { + optional string agent_id = 1; + string error = 2; +} + +message SubagentAwaitResult { + oneof result { + SubagentAwaitComplete complete = 1; + SubagentAwaitStillRunning still_running = 2; + SubagentAwaitNotFound not_found = 3; + SubagentAwaitError error = 4; + } +} + +message ForceBackgroundSubagentArgs { + string tool_call_id = 1; +} + +message ForceBackgroundSubagentResult { + ForceBackgroundSubagentStatus status = 1; +} + +// ===== Hooks ===== + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message PreCompactRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message SubagentStartRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message SubagentStopRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message PreToolUseRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message PostToolUseRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message PostToolUseFailureRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message BeforeSubmitPromptRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message AfterAgentResponseRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message AfterAgentThoughtRequestQuery { +} + +// Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. +message StopRequestQuery { +} + +message PreCompactRequestResponse { + optional string user_message = 1; +} + +message SubagentStartRequestResponse { + optional string permission = 1; + optional string user_message = 2; + optional string additional_context = 3; +} + +message SubagentStopRequestResponse { + optional string followup_message = 1; + optional string additional_context = 2; +} + +message PreToolUseRequestResponse { + optional string permission = 1; + optional string user_message = 2; + optional string agent_message = 3; + optional string updated_input = 4; + optional string additional_context = 5; +} + +message PostToolUseRequestResponse { + optional string additional_context = 1; +} + +message PostToolUseFailureRequestResponse { + optional string additional_context = 1; +} + +message BeforeSubmitPromptRequestResponse { + optional bool continue = 1; + optional string user_message = 2; + optional string additional_context = 3; +} + +message AfterAgentResponseRequestResponse { +} + +message AfterAgentThoughtRequestResponse { +} + +message StopRequestResponse { + optional string followup_message = 1; +} + +message ExecuteHookRequest { + oneof request { + PreCompactRequestQuery pre_compact = 1; + SubagentStartRequestQuery subagent_start = 2; + SubagentStopRequestQuery subagent_stop = 3; + PreToolUseRequestQuery pre_tool_use = 4; + PostToolUseRequestQuery post_tool_use = 5; + PostToolUseFailureRequestQuery post_tool_use_failure = 6; + BeforeSubmitPromptRequestQuery before_submit_prompt = 7; + AfterAgentResponseRequestQuery after_agent_response = 8; + AfterAgentThoughtRequestQuery after_agent_thought = 9; + StopRequestQuery stop = 11; + } +} + +message ExecuteHookResponse { + oneof response { + PreCompactRequestResponse pre_compact = 1; + SubagentStartRequestResponse subagent_start = 2; + SubagentStopRequestResponse subagent_stop = 3; + PreToolUseRequestResponse pre_tool_use = 4; + PostToolUseRequestResponse post_tool_use = 5; + PostToolUseFailureRequestResponse post_tool_use_failure = 6; + BeforeSubmitPromptRequestResponse before_submit_prompt = 7; + AfterAgentResponseRequestResponse after_agent_response = 8; + AfterAgentThoughtRequestResponse after_agent_thought = 9; + StopRequestResponse stop = 11; + } +} + +message ExecuteHookArgs { + ExecuteHookRequest request = 1; +} + +message ExecuteHookResult { + ExecuteHookResponse response = 1; +} + +// ===== Smart-mode classifier ===== + +enum SmartModeClassifierDecision { + SMART_MODE_CLASSIFIER_DECISION_UNSPECIFIED = 0; + SMART_MODE_CLASSIFIER_DECISION_ALLOW = 1; + SMART_MODE_CLASSIFIER_DECISION_BLOCK = 2; +} + +// Subset: arguments=2 (google.protobuf.Struct) decodes into unknown fields; do not reuse. +message SmartModeRiskTarget { + string action = 1; +} + +message SmartModeClassifierConversationMessage { + string role = 1; + string content = 2; +} + +message SmartModeClassifierArgs { + string tool_call_id = 1; + optional string parent_conversation_id = 2; + SmartModeRiskTarget target = 3; + repeated SmartModeClassifierConversationMessage conversation_context = 4; +} + +message SmartModeClassifierSuccess { + SmartModeClassifierDecision decision = 1; + optional string block_reason = 2; +} + +message SmartModeClassifierError { + string error = 1; +} + +message SmartModeClassifierResult { + oneof result { + SmartModeClassifierSuccess success = 1; + SmartModeClassifierError error = 2; + } +} + +// ===== Canvas diagnostics ===== + +message CanvasDiagnosticsArgs { + string path = 1; + string tool_call_id = 2; +} + +message CanvasDiagnosticsSuccess { + string path = 1; + repeated Diagnostic diagnostics = 2; +} + +message CanvasDiagnosticsError { + string path = 1; + string error = 2; +} + +message CanvasDiagnosticsResult { + oneof result { + CanvasDiagnosticsSuccess success = 1; + CanvasDiagnosticsError error = 2; + } +} + +// ===== Conversation search ===== + +enum ConversationSearchSource { + CONVERSATION_SEARCH_SOURCE_UNSPECIFIED = 0; + CONVERSATION_SEARCH_SOURCE_LOCAL = 1; + CONVERSATION_SEARCH_SOURCE_CLOUD_CACHE = 2; +} + +message ConversationSearchHit { + string conversation_id = 1; + string title = 2; + ConversationSearchSource source = 3; + int64 updated_at_ms = 4; + optional string snippet = 5; +} + +message ConversationSearchSuccess { + repeated ConversationSearchHit hits = 1; + bool truncated = 2; + bool partial = 3; + bool rebuilding = 4; +} + +message ConversationSearchError { + string error = 1; +} + +message ConversationSearchArgs { + string query = 1; + string tool_call_id = 2; + optional int32 limit = 3; +} + +message ConversationSearchResult { + oneof result { + ConversationSearchSuccess success = 1; + ConversationSearchError error = 2; + } +} + +// ===== Agent store conflicts ===== + +message AgentStoreConflictCursor { + string journal_epoch = 1; + uint64 seq = 2; + string last_event_id = 3; +} + +message AgentStoreConflictEvent { + uint32 v = 1; + string event_id = 2; + string journal_epoch = 3; + uint64 seq = 4; + uint64 ts_ms = 5; + string kind = 6; + optional string store_id = 7; + optional string original_rel_path = 8; + optional string conflict_rel_path = 9; + optional string original_abs_path = 10; + optional string conflict_abs_path = 11; + optional uint64 preserved_bytes = 12; +} + +message AgentStoreConflictSuccess { + repeated AgentStoreConflictEvent events = 1; + AgentStoreConflictCursor next_cursor = 2; + bool gap = 3; +} + +message AgentStoreConflictError { + string error = 1; +} + +message AgentStoreConflictArgs { + optional AgentStoreConflictCursor cursor = 1; + optional bool advance = 2; +} + +message AgentStoreConflictResult { + oneof result { + AgentStoreConflictSuccess success = 1; + AgentStoreConflictError error = 2; + } +} + +// ===== Git diff (upstream aiserver.v1; declared here in agent.v1 — the exec channel is binary +// protobuf, so field numbers, not type names, define wire compatibility) ===== + +enum GetDiffRequest_OutputFormat { + OUTPUT_FORMAT_UNSPECIFIED = 0; + OUTPUT_FORMAT_NAME_STATUS = 1; + OUTPUT_FORMAT_NAME_STATUS_AND_NUMSTAT = 2; + OUTPUT_FORMAT_FILE_DIFFS = 3; + OUTPUT_FORMAT_DIFFS_WITH_BEFORE_AND_AFTER = 4; +} + +enum GitDiff_DiffType { + DIFF_TYPE_UNSPECIFIED = 0; + DIFF_TYPE_DIFF_TO_HEAD = 1; + DIFF_TYPE_DIFF_FROM_BRANCH_TO_MAIN = 2; +} + +message FileDiff_Chunk { + string content = 1; + repeated string lines = 2; + int32 old_start = 3; + int32 old_lines = 4; + int32 new_start = 5; + int32 new_lines = 6; +} + +message FileDiff { + int32 added = 4; + int32 removed = 5; + string from = 1; + string to = 2; + repeated FileDiff_Chunk chunks = 3; + optional string before_file_contents = 6; + optional string after_file_contents = 7; + optional bool is_generated = 8; +} + +message GitDiff { + repeated FileDiff diffs = 1; + GitDiff_DiffType diff_type = 2; +} + +message GetDiffResponse_SubmoduleDiff { + string relative_path = 1; + GitDiff diff = 2; + bool errored = 3; +} + +message GetDiffRequest { + string cwd = 1; + string ref = 2; + string base_ref = 3; + bool merge_base = 4; + repeated string target_paths = 5; + optional int32 unified_context_lines = 6; + int32 max_untracked_files = 7; + int32 submodule_recurse_depth = 9; + bool include_space_changes = 10; + bool committed_only = 11; + bool compute_patch_id = 12; + optional bool return_head_sha = 13; + optional int32 max_response_bytes = 14; + optional GetDiffRequest_OutputFormat output_format = 8; +} + +message GetDiffResponse { + GitDiff diff = 1; + repeated GetDiffResponse_SubmoduleDiff submodule_diffs = 2; + optional string patch_id = 3; + optional string head_sha = 4; + optional bool has_uncommitted_changes = 5; +} diff --git a/packages/catalog/package.json b/packages/catalog/package.json index 1f4b40bae..599c8a1ad 100644 --- a/packages/catalog/package.json +++ b/packages/catalog/package.json @@ -30,7 +30,8 @@ "test": "bun test --parallel", "fix": "biome check --write --unsafe .", "fmt": "biome format --write .", - "gen:models": "bun scripts/generate-models.ts" + "gen:models": "bun scripts/generate-models.ts", + "gen:cursor-proto": "protoc --plugin=protoc-gen-es=../../node_modules/.bin/protoc-gen-es --es_out=src/discovery/cursor-gen --es_opt=target=ts -I ../ai/src/providers/cursor/proto ../ai/src/providers/cursor/proto/agent.proto" }, "dependencies": { "@bufbuild/protobuf": "catalog:", diff --git a/packages/catalog/src/discovery/cursor-gen/agent_pb.ts b/packages/catalog/src/discovery/cursor-gen/agent_pb.ts index 050b61686..d88893d14 100644 --- a/packages/catalog/src/discovery/cursor-gen/agent_pb.ts +++ b/packages/catalog/src/discovery/cursor-gen/agent_pb.ts @@ -1,66 +1,62 @@ -// @generated by protoc-gen-es v2.10.2 with parameter "target=ts" +// @generated by protoc-gen-es v2.13.0 with parameter "target=ts" // @generated from file agent.proto (package agent.v1, syntax proto3) /* eslint-disable */ -import type { Message } from "@bufbuild/protobuf"; import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2"; import { enumDesc, fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2"; +import type { Message } from "@bufbuild/protobuf"; /** * Describes the file agent.proto. */ -export const file_agent: GenFile = - /*@__PURE__*/ - fileDesc( - "CgthZ2VudC5wcm90bxIIYWdlbnQudjEicgoOR2xvYlRvb2xSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLkdsb2JUb29sU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuR2xvYlRvb2xFcnJvckgAQggKBnJlc3VsdCIeCg1HbG9iVG9vbEVycm9yEg0KBWVycm9yGAEgASgJIokBCg9HbG9iVG9vbFN1Y2Nlc3MSDwoHcGF0dGVybhgBIAEoCRIMCgRwYXRoGAIgASgJEg0KBWZpbGVzGAMgAygJEhMKC3RvdGFsX2ZpbGVzGAQgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBSABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBiABKAgiRgoMR2xvYlRvb2xDYWxsEgwKBGFyZ3MYASABKAwSKAoGcmVzdWx0GAIgASgLMhguYWdlbnQudjEuR2xvYlRvb2xSZXN1bHQibQoRUmVhZExpbnRzVG9vbENhbGwSKQoEYXJncxgBIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xBcmdzEi0KBnJlc3VsdBgCIAEoCzIdLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xSZXN1bHQiIgoRUmVhZExpbnRzVG9vbEFyZ3MSDQoFcGF0aHMYASADKAkigQEKE1JlYWRMaW50c1Rvb2xSZXN1bHQSMQoHc3VjY2VzcxgBIAEoCzIeLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xTdWNjZXNzSAASLQoFZXJyb3IYAiABKAsyHC5hZ2VudC52MS5SZWFkTGludHNUb29sRXJyb3JIAEIICgZyZXN1bHQiewoUUmVhZExpbnRzVG9vbFN1Y2Nlc3MSMwoQZmlsZV9kaWFnbm9zdGljcxgBIAMoCzIZLmFnZW50LnYxLkZpbGVEaWFnbm9zdGljcxITCgt0b3RhbF9maWxlcxgCIAEoBRIZChF0b3RhbF9kaWFnbm9zdGljcxgDIAEoBSJpCg9GaWxlRGlhZ25vc3RpY3MSDAoEcGF0aBgBIAEoCRItCgtkaWFnbm9zdGljcxgCIAMoCzIYLmFnZW50LnYxLkRpYWdub3N0aWNJdGVtEhkKEWRpYWdub3N0aWNzX2NvdW50GAMgASgFIqsBCg5EaWFnbm9zdGljSXRlbRIuCghzZXZlcml0eRgBIAEoDjIcLmFnZW50LnYxLkRpYWdub3N0aWNTZXZlcml0eRIoCgVyYW5nZRgCIAEoCzIZLmFnZW50LnYxLkRpYWdub3N0aWNSYW5nZRIPCgdtZXNzYWdlGAMgASgJEg4KBnNvdXJjZRgEIAEoCRIMCgRjb2RlGAUgASgJEhAKCGlzX3N0YWxlGAYgASgIIlUKD0RpYWdub3N0aWNSYW5nZRIhCgVzdGFydBgBIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uEh8KA2VuZBgCIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uIisKElJlYWRMaW50c1Rvb2xFcnJvchIVCg1lcnJvcl9tZXNzYWdlGAEgASgJIh0KDE1jcFRvb2xFcnJvchINCgVlcnJvchgBIAEoCSLSAQoNTWNwVG9vbFJlc3VsdBInCgdzdWNjZXNzGAEgASgLMhQuYWdlbnQudjEuTWNwU3VjY2Vzc0gAEicKBWVycm9yGAIgASgLMhYuYWdlbnQudjEuTWNwVG9vbEVycm9ySAASKQoIcmVqZWN0ZWQYAyABKAsyFS5hZ2VudC52MS5NY3BSZWplY3RlZEgAEjoKEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMh0uYWdlbnQudjEuTWNwUGVybWlzc2lvbkRlbmllZEgAQggKBnJlc3VsdCJXCgtNY3BUb29sQ2FsbBIfCgRhcmdzGAEgASgLMhEuYWdlbnQudjEuTWNwQXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5NY3BUb29sUmVzdWx0Im0KEVNlbVNlYXJjaFRvb2xDYWxsEikKBGFyZ3MYASABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQXJncxItCgZyZXN1bHQYAiABKAsyHS5hZ2VudC52MS5TZW1TZWFyY2hUb29sUmVzdWx0IlMKEVNlbVNlYXJjaFRvb2xBcmdzEg0KBXF1ZXJ5GAEgASgJEhoKEnRhcmdldF9kaXJlY3RvcmllcxgCIAMoCRITCgtleHBsYW5hdGlvbhgDIAEoCSKBAQoTU2VtU2VhcmNoVG9vbFJlc3VsdBIxCgdzdWNjZXNzGAEgASgLMh4uYWdlbnQudjEuU2VtU2VhcmNoVG9vbFN1Y2Nlc3NIABItCgVlcnJvchgCIAEoCzIcLmFnZW50LnYxLlNlbVNlYXJjaFRvb2xFcnJvckgAQggKBnJlc3VsdCI9ChRTZW1TZWFyY2hUb29sU3VjY2VzcxIPCgdyZXN1bHRzGAEgASgJEhQKDGNvZGVfcmVzdWx0cxgCIAMoDCIrChJTZW1TZWFyY2hUb29sRXJyb3ISFQoNZXJyb3JfbWVzc2FnZRgBIAEoCSKCAQoYTGlzdE1jcFJlc291cmNlc1Rvb2xDYWxsEjAKBGFyZ3MYASABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY0FyZ3MSNAoGcmVzdWx0GAIgASgLMiQuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHQifwoXUmVhZE1jcFJlc291cmNlVG9vbENhbGwSLwoEYXJncxgBIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzEjMKBnJlc3VsdBgCIAEoCzIjLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNSZXN1bHQiWQoNRmV0Y2hUb29sQ2FsbBIhCgRhcmdzGAEgASgLMhMuYWdlbnQudjEuRmV0Y2hBcmdzEiUKBnJlc3VsdBgCIAEoCzIVLmFnZW50LnYxLkZldGNoUmVzdWx0Im4KFFJlY29yZFNjcmVlblRvb2xDYWxsEigKBGFyZ3MYASABKAsyGi5hZ2VudC52MS5SZWNvcmRTY3JlZW5BcmdzEiwKBnJlc3VsdBgCIAEoCzIcLmFnZW50LnYxLlJlY29yZFNjcmVlblJlc3VsdCJ3ChdXcml0ZVNoZWxsU3RkaW5Ub29sQ2FsbBIrCgRhcmdzGAEgASgLMh0uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluQXJncxIvCgZyZXN1bHQYAiABKAsyHy5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5SZXN1bHQisQEKC1JlZmxlY3RBcmdzEiIKGnVuZXhwZWN0ZWRfYWN0aW9uX291dGNvbWVzGAEgASgJEh0KFXJlbGV2YW50X2luc3RydWN0aW9ucxgCIAEoCRIZChFzY2VuYXJpb19hbmFseXNpcxgDIAEoCRIaChJjcml0aWNhbF9zeW50aGVzaXMYBCABKAkSEgoKbmV4dF9zdGVwcxgFIAEoCRIUCgx0b29sX2NhbGxfaWQYBiABKAkibwoNUmVmbGVjdFJlc3VsdBIrCgdzdWNjZXNzGAEgASgLMhguYWdlbnQudjEuUmVmbGVjdFN1Y2Nlc3NIABInCgVlcnJvchgCIAEoCzIWLmFnZW50LnYxLlJlZmxlY3RFcnJvckgAQggKBnJlc3VsdCIQCg5SZWZsZWN0U3VjY2VzcyIdCgxSZWZsZWN0RXJyb3ISDQoFZXJyb3IYASABKAkiXwoPUmVmbGVjdFRvb2xDYWxsEiMKBGFyZ3MYASABKAsyFS5hZ2VudC52MS5SZWZsZWN0QXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5SZWZsZWN0UmVzdWx0IlkKF1N0YXJ0R3JpbmRFeGVjdXRpb25BcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKTAQoZU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdBI3CgdzdWNjZXNzGAEgASgLMiQuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblN1Y2Nlc3NIABIzCgVlcnJvchgCIAEoCzIiLmFnZW50LnYxLlN0YXJ0R3JpbmRFeGVjdXRpb25FcnJvckgAQggKBnJlc3VsdCIcChpTdGFydEdyaW5kRXhlY3V0aW9uU3VjY2VzcyIpChhTdGFydEdyaW5kRXhlY3V0aW9uRXJyb3ISDQoFZXJyb3IYASABKAkigwEKG1N0YXJ0R3JpbmRFeGVjdXRpb25Ub29sQ2FsbBIvCgRhcmdzGAEgASgLMiEuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvbkFyZ3MSMwoGcmVzdWx0GAIgASgLMiMuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdCJYChZTdGFydEdyaW5kUGxhbm5pbmdBcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKQAQoYU3RhcnRHcmluZFBsYW5uaW5nUmVzdWx0EjYKB3N1Y2Nlc3MYASABKAsyIy5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzSAASMgoFZXJyb3IYAiABKAsyIS5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdFcnJvckgAQggKBnJlc3VsdCIbChlTdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzIigKF1N0YXJ0R3JpbmRQbGFubmluZ0Vycm9yEg0KBWVycm9yGAEgASgJIoABChpTdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbBIuCgRhcmdzGAEgASgLMiAuYWdlbnQudjEuU3RhcnRHcmluZFBsYW5uaW5nQXJncxIyCgZyZXN1bHQYAiABKAsyIi5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdSZXN1bHQinAEKCFRhc2tBcmdzEhMKC2Rlc2NyaXB0aW9uGAEgASgJEg4KBnByb21wdBgCIAEoCRItCg1zdWJhZ2VudF90eXBlGAMgASgLMhYuYWdlbnQudjEuU3ViYWdlbnRUeXBlEhIKBW1vZGVsGAQgASgJSACIAQESEwoGcmVzdW1lGAUgASgJSAGIAQFCCAoGX21vZGVsQgkKB19yZXN1bWUiqgEKC1Rhc2tTdWNjZXNzEjYKEmNvbnZlcnNhdGlvbl9zdGVwcxgBIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0ZXASFQoIYWdlbnRfaWQYAiABKAlIAIgBARIVCg1pc19iYWNrZ3JvdW5kGAMgASgIEhgKC2R1cmF0aW9uX21zGAQgASgESAGIAQFCCwoJX2FnZW50X2lkQg4KDF9kdXJhdGlvbl9tcyIaCglUYXNrRXJyb3ISDQoFZXJyb3IYASABKAkiZgoKVGFza1Jlc3VsdBIoCgdzdWNjZXNzGAEgASgLMhUuYWdlbnQudjEuVGFza1N1Y2Nlc3NIABIkCgVlcnJvchgCIAEoCzITLmFnZW50LnYxLlRhc2tFcnJvckgAQggKBnJlc3VsdCJWCgxUYXNrVG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLlRhc2tBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLlRhc2tSZXN1bHQiTAoRVGFza1Rvb2xDYWxsRGVsdGESNwoSaW50ZXJhY3Rpb25fdXBkYXRlGAEgASgLMhsuYWdlbnQudjEuSW50ZXJhY3Rpb25VcGRhdGUiyw8KCFRvb2xDYWxsEjIKD3NoZWxsX3Rvb2xfY2FsbBgBIAEoCzIXLmFnZW50LnYxLlNoZWxsVG9vbENhbGxIABI0ChBkZWxldGVfdG9vbF9jYWxsGAMgASgLMhguYWdlbnQudjEuRGVsZXRlVG9vbENhbGxIABIwCg5nbG9iX3Rvb2xfY2FsbBgEIAEoCzIWLmFnZW50LnYxLkdsb2JUb29sQ2FsbEgAEjAKDmdyZXBfdG9vbF9jYWxsGAUgASgLMhYuYWdlbnQudjEuR3JlcFRvb2xDYWxsSAASMAoOcmVhZF90b29sX2NhbGwYCCABKAsyFi5hZ2VudC52MS5SZWFkVG9vbENhbGxIABI/ChZ1cGRhdGVfdG9kb3NfdG9vbF9jYWxsGAkgASgLMh0uYWdlbnQudjEuVXBkYXRlVG9kb3NUb29sQ2FsbEgAEjsKFHJlYWRfdG9kb3NfdG9vbF9jYWxsGAogASgLMhsuYWdlbnQudjEuUmVhZFRvZG9zVG9vbENhbGxIABIwCg5lZGl0X3Rvb2xfY2FsbBgMIAEoCzIWLmFnZW50LnYxLkVkaXRUb29sQ2FsbEgAEiwKDGxzX3Rvb2xfY2FsbBgNIAEoCzIULmFnZW50LnYxLkxzVG9vbENhbGxIABI7ChRyZWFkX2xpbnRzX3Rvb2xfY2FsbBgOIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xDYWxsSAASLgoNbWNwX3Rvb2xfY2FsbBgPIAEoCzIVLmFnZW50LnYxLk1jcFRvb2xDYWxsSAASOwoUc2VtX3NlYXJjaF90b29sX2NhbGwYECABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQ2FsbEgAEj0KFWNyZWF0ZV9wbGFuX3Rvb2xfY2FsbBgRIAEoCzIcLmFnZW50LnYxLkNyZWF0ZVBsYW5Ub29sQ2FsbEgAEjsKFHdlYl9zZWFyY2hfdG9vbF9jYWxsGBIgASgLMhsuYWdlbnQudjEuV2ViU2VhcmNoVG9vbENhbGxIABIwCg50YXNrX3Rvb2xfY2FsbBgTIAEoCzIWLmFnZW50LnYxLlRhc2tUb29sQ2FsbEgAEkoKHGxpc3RfbWNwX3Jlc291cmNlc190b29sX2NhbGwYFCABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzVG9vbENhbGxIABJIChtyZWFkX21jcF9yZXNvdXJjZV90b29sX2NhbGwYFSABKAsyIS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VUb29sQ2FsbEgAEkYKGmFwcGx5X2FnZW50X2RpZmZfdG9vbF9jYWxsGBYgASgLMiAuYWdlbnQudjEuQXBwbHlBZ2VudERpZmZUb29sQ2FsbEgAEj8KFmFza19xdWVzdGlvbl90b29sX2NhbGwYFyABKAsyHS5hZ2VudC52MS5Bc2tRdWVzdGlvblRvb2xDYWxsSAASMgoPZmV0Y2hfdG9vbF9jYWxsGBggASgLMhcuYWdlbnQudjEuRmV0Y2hUb29sQ2FsbEgAEj0KFXN3aXRjaF9tb2RlX3Rvb2xfY2FsbBgZIAEoCzIcLmFnZW50LnYxLlN3aXRjaE1vZGVUb29sQ2FsbEgAEjsKFGV4YV9zZWFyY2hfdG9vbF9jYWxsGBogASgLMhsuYWdlbnQudjEuRXhhU2VhcmNoVG9vbENhbGxIABI5ChNleGFfZmV0Y2hfdG9vbF9jYWxsGBsgASgLMhouYWdlbnQudjEuRXhhRmV0Y2hUb29sQ2FsbEgAEkMKGGdlbmVyYXRlX2ltYWdlX3Rvb2xfY2FsbBgcIAEoCzIfLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VUb29sQ2FsbEgAEkEKF3JlY29yZF9zY3JlZW5fdG9vbF9jYWxsGB0gASgLMh4uYWdlbnQudjEuUmVjb3JkU2NyZWVuVG9vbENhbGxIABI/ChZjb21wdXRlcl91c2VfdG9vbF9jYWxsGB4gASgLMh0uYWdlbnQudjEuQ29tcHV0ZXJVc2VUb29sQ2FsbEgAEkgKG3dyaXRlX3NoZWxsX3N0ZGluX3Rvb2xfY2FsbBgfIAEoCzIhLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpblRvb2xDYWxsSAASNgoRcmVmbGVjdF90b29sX2NhbGwYICABKAsyGS5hZ2VudC52MS5SZWZsZWN0VG9vbENhbGxIABJOCh5zZXR1cF92bV9lbnZpcm9ubWVudF90b29sX2NhbGwYISABKAsyJC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRUb29sQ2FsbEgAEjoKE3RydW5jYXRlZF90b29sX2NhbGwYIiABKAsyGy5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEgAElAKH3N0YXJ0X2dyaW5kX2V4ZWN1dGlvbl90b29sX2NhbGwYIyABKAsyJS5hZ2VudC52MS5TdGFydEdyaW5kRXhlY3V0aW9uVG9vbENhbGxIABJOCh5zdGFydF9ncmluZF9wbGFubmluZ190b29sX2NhbGwYJCABKAsyJC5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbEgAQgYKBHRvb2wiFwoVVHJ1bmNhdGVkVG9vbENhbGxBcmdzIhoKGFRydW5jYXRlZFRvb2xDYWxsU3VjY2VzcyInChZUcnVuY2F0ZWRUb29sQ2FsbEVycm9yEg0KBWVycm9yGAEgASgJIo0BChdUcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdBI1CgdzdWNjZXNzGAEgASgLMiIuYWdlbnQudjEuVHJ1bmNhdGVkVG9vbENhbGxTdWNjZXNzSAASMQoFZXJyb3IYAiABKAsyIC5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEVycm9ySABCCAoGcmVzdWx0IpQBChFUcnVuY2F0ZWRUb29sQ2FsbBIdChVvcmlnaW5hbF9zdGVwX2Jsb2JfaWQYASABKAwSLQoEYXJncxgCIAEoCzIfLmFnZW50LnYxLlRydW5jYXRlZFRvb2xDYWxsQXJncxIxCgZyZXN1bHQYAyABKAsyIS5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdCLRAQoNVG9vbENhbGxEZWx0YRI9ChVzaGVsbF90b29sX2NhbGxfZGVsdGEYASABKAsyHC5hZ2VudC52MS5TaGVsbFRvb2xDYWxsRGVsdGFIABI7ChR0YXNrX3Rvb2xfY2FsbF9kZWx0YRgCIAEoCzIbLmFnZW50LnYxLlRhc2tUb29sQ2FsbERlbHRhSAASOwoUZWRpdF90b29sX2NhbGxfZGVsdGEYAyABKAsyGy5hZ2VudC52MS5FZGl0VG9vbENhbGxEZWx0YUgAQgcKBWRlbHRhIrYBChBDb252ZXJzYXRpb25TdGVwEjcKEWFzc2lzdGFudF9tZXNzYWdlGAEgASgLMhouYWdlbnQudjEuQXNzaXN0YW50TWVzc2FnZUgAEicKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsSAASNQoQdGhpbmtpbmdfbWVzc2FnZRgDIAEoCzIZLmFnZW50LnYxLlRoaW5raW5nTWVzc2FnZUgAQgkKB21lc3NhZ2UigQQKEkNvbnZlcnNhdGlvbkFjdGlvbhI6ChN1c2VyX21lc3NhZ2VfYWN0aW9uGAEgASgLMhsuYWdlbnQudjEuVXNlck1lc3NhZ2VBY3Rpb25IABIvCg1yZXN1bWVfYWN0aW9uGAIgASgLMhYuYWdlbnQudjEuUmVzdW1lQWN0aW9uSAASLwoNY2FuY2VsX2FjdGlvbhgDIAEoCzIWLmFnZW50LnYxLkNhbmNlbEFjdGlvbkgAEjUKEHN1bW1hcml6ZV9hY3Rpb24YBCABKAsyGS5hZ2VudC52MS5TdW1tYXJpemVBY3Rpb25IABI8ChRzaGVsbF9jb21tYW5kX2FjdGlvbhgFIAEoCzIcLmFnZW50LnYxLlNoZWxsQ29tbWFuZEFjdGlvbkgAEjYKEXN0YXJ0X3BsYW5fYWN0aW9uGAYgASgLMhkuYWdlbnQudjEuU3RhcnRQbGFuQWN0aW9uSAASOgoTZXhlY3V0ZV9wbGFuX2FjdGlvbhgHIAEoCzIbLmFnZW50LnYxLkV4ZWN1dGVQbGFuQWN0aW9uSAASWgokYXN5bmNfYXNrX3F1ZXN0aW9uX2NvbXBsZXRpb25fYWN0aW9uGAggASgLMiouYWdlbnQudjEuQXN5bmNBc2tRdWVzdGlvbkNvbXBsZXRpb25BY3Rpb25IAEIICgZhY3Rpb24ivwEKEVVzZXJNZXNzYWdlQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0EikKHHNlbmRfdG9faW50ZXJhY3Rpb25fbGlzdGVuZXIYAyABKAhIAIgBAUIfCh1fc2VuZF90b19pbnRlcmFjdGlvbl9saXN0ZW5lciIOCgxDYW5jZWxBY3Rpb24iQQoMUmVzdW1lQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0IqABCiBBc3luY0Fza1F1ZXN0aW9uQ29tcGxldGlvbkFjdGlvbhIdChVvcmlnaW5hbF90b29sX2NhbGxfaWQYASABKAkSMAoNb3JpZ2luYWxfYXJncxgCIAEoCzIZLmFnZW50LnYxLkFza1F1ZXN0aW9uQXJncxIrCgZyZXN1bHQYAyABKAsyGy5hZ2VudC52MS5Bc2tRdWVzdGlvblJlc3VsdCIRCg9TdW1tYXJpemVBY3Rpb24iVAoSU2hlbGxDb21tYW5kQWN0aW9uEi0KDXNoZWxsX2NvbW1hbmQYASABKAsyFi5hZ2VudC52MS5TaGVsbENvbW1hbmQSDwoHZXhlY19pZBgCIAEoCSKCAQoPU3RhcnRQbGFuQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Eg8KB2lzX3NwZWMYAyABKAgi4gEKEUV4ZWN1dGVQbGFuQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgBIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Ei0KBHBsYW4YAiABKAsyGi5hZ2VudC52MS5Db252ZXJzYXRpb25QbGFuSACIAQESGgoNcGxhbl9maWxlX3VyaRgDIAEoCUgBiAEBEh4KEXBsYW5fZmlsZV9jb250ZW50GAQgASgJSAKIAQFCBwoFX3BsYW5CEAoOX3BsYW5fZmlsZV91cmlCFAoSX3BsYW5fZmlsZV9jb250ZW50IugCCgtVc2VyTWVzc2FnZRIMCgR0ZXh0GAEgASgJEhIKCm1lc3NhZ2VfaWQYAiABKAkSOAoQc2VsZWN0ZWRfY29udGV4dBgDIAEoCzIZLmFnZW50LnYxLlNlbGVjdGVkQ29udGV4dEgAiAEBEgwKBG1vZGUYBCABKAUSHQoQaXNfc2ltdWxhdGVkX21zZxgFIAEoCEgBiAEBEh8KEmJlc3Rfb2Zfbl9ncm91cF9pZBgGIAEoCUgCiAEBEigKG3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbhgHIAEoCEgDiAEBEhYKCXJpY2hfdGV4dBgIIAEoCUgEiAEBQhMKEV9zZWxlY3RlZF9jb250ZXh0QhMKEV9pc19zaW11bGF0ZWRfbXNnQhUKE19iZXN0X29mX25fZ3JvdXBfaWRCHgocX3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbkIMCgpfcmljaF90ZXh0IiAKEEFzc2lzdGFudE1lc3NhZ2USDAoEdGV4dBgBIAEoCSI0Cg9UaGlua2luZ01lc3NhZ2USDAoEdGV4dBgBIAEoCRITCgtkdXJhdGlvbl9tcxgCIAEoDSIfCgxTaGVsbENvbW1hbmQSDwoHY29tbWFuZBgBIAEoCSJACgtTaGVsbE91dHB1dBIOCgZzdGRvdXQYASABKAkSDgoGc3RkZXJyGAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBSKiAQoQQ29udmVyc2F0aW9uVHVybhJCChdhZ2VudF9jb252ZXJzYXRpb25fdHVybhgBIAEoCzIfLmFnZW50LnYxLkFnZW50Q29udmVyc2F0aW9uVHVybkgAEkIKF3NoZWxsX2NvbnZlcnNhdGlvbl90dXJuGAIgASgLMh8uYWdlbnQudjEuU2hlbGxDb252ZXJzYXRpb25UdXJuSABCBgoEdHVybiIgChBDb252ZXJzYXRpb25QbGFuEgwKBHBsYW4YASABKAkivQEKGUNvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmUSSwoXYWdlbnRfY29udmVyc2F0aW9uX3R1cm4YASABKAsyKC5hZ2VudC52MS5BZ2VudENvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmVIABJLChdzaGVsbF9jb252ZXJzYXRpb25fdHVybhgCIAEoCzIoLmFnZW50LnYxLlNoZWxsQ29udmVyc2F0aW9uVHVyblN0cnVjdHVyZUgAQgYKBHR1cm4ilwEKFUFnZW50Q29udmVyc2F0aW9uVHVybhIrCgx1c2VyX21lc3NhZ2UYASABKAsyFS5hZ2VudC52MS5Vc2VyTWVzc2FnZRIpCgVzdGVwcxgCIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0ZXASFwoKcmVxdWVzdF9pZBgDIAEoCUgAiAEBQg0KC19yZXF1ZXN0X2lkIm0KHkFnZW50Q29udmVyc2F0aW9uVHVyblN0cnVjdHVyZRIUCgx1c2VyX21lc3NhZ2UYASABKAwSDQoFc3RlcHMYAiADKAwSFwoKcmVxdWVzdF9pZBgDIAEoCUgAiAEBQg0KC19yZXF1ZXN0X2lkInMKFVNoZWxsQ29udmVyc2F0aW9uVHVybhItCg1zaGVsbF9jb21tYW5kGAEgASgLMhYuYWdlbnQudjEuU2hlbGxDb21tYW5kEisKDHNoZWxsX291dHB1dBgCIAEoCzIVLmFnZW50LnYxLlNoZWxsT3V0cHV0Ik0KHlNoZWxsQ29udmVyc2F0aW9uVHVyblN0cnVjdHVyZRIVCg1zaGVsbF9jb21tYW5kGAEgASgMEhQKDHNoZWxsX291dHB1dBgCIAEoDCImChNDb252ZXJzYXRpb25TdW1tYXJ5Eg8KB3N1bW1hcnkYASABKAkieAoaQ29udmVyc2F0aW9uU3VtbWFyeUFyY2hpdmUSGwoTc3VtbWFyaXplZF9tZXNzYWdlcxgBIAMoDBIPCgdzdW1tYXJ5GAIgASgJEhMKC3dpbmRvd190YWlsGAMgASgNEhcKD3N1bW1hcnlfbWVzc2FnZRgEIAEoDCJDChhDb252ZXJzYXRpb25Ub2tlbkRldGFpbHMSEwoLdXNlZF90b2tlbnMYASABKA0SEgoKbWF4X3Rva2VucxgCIAEoDSJfCglGaWxlU3RhdGUSFAoHY29udGVudBgBIAEoCUgAiAEBEhwKD2luaXRpYWxfY29udGVudBgCIAEoCUgBiAEBQgoKCF9jb250ZW50QhIKEF9pbml0aWFsX2NvbnRlbnQiaAoSRmlsZVN0YXRlU3RydWN0dXJlEhQKB2NvbnRlbnQYASABKAxIAIgBARIcCg9pbml0aWFsX2NvbnRlbnQYAiABKAxIAYgBAUIKCghfY29udGVudEISChBfaW5pdGlhbF9jb250ZW50IjcKClN0ZXBUaW1pbmcSEwoLZHVyYXRpb25fbXMYASABKAQSFAoMdGltZXN0YW1wX21zGAIgASgEIvYEChFDb252ZXJzYXRpb25TdGF0ZRIhChlyb290X3Byb21wdF9tZXNzYWdlc19qc29uGAEgAygJEikKBXR1cm5zGAggAygLMhouYWdlbnQudjEuQ29udmVyc2F0aW9uVHVybhIhCgV0b2RvcxgDIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEhoKEnBlbmRpbmdfdG9vbF9jYWxscxgEIAMoCRI5Cg10b2tlbl9kZXRhaWxzGAUgASgLMiIuYWdlbnQudjEuQ29udmVyc2F0aW9uVG9rZW5EZXRhaWxzEjMKB3N1bW1hcnkYBiABKAsyHS5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5SACIAQESLQoEcGxhbhgHIAEoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblBsYW5IAYgBARJCCg9zdW1tYXJ5X2FyY2hpdmUYCSABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5QXJjaGl2ZUgCiAEBEkAKC2ZpbGVfc3RhdGVzGAogAygLMisuYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGUuRmlsZVN0YXRlc0VudHJ5Ej4KEHN1bW1hcnlfYXJjaGl2ZXMYCyADKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5QXJjaGl2ZRpGCg9GaWxlU3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMuYWdlbnQudjEuRmlsZVN0YXRlOgI4AUIKCghfc3VtbWFyeUIHCgVfcGxhbkISChBfc3VtbWFyeV9hcmNoaXZlIscBChZTdWJhZ2VudFBlcnNpc3RlZFN0YXRlEkAKEmNvbnZlcnNhdGlvbl9zdGF0ZRgBIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlEhwKFGNyZWF0ZWRfdGltZXN0YW1wX21zGAIgASgEEh4KFmxhc3RfdXNlZF90aW1lc3RhbXBfbXMYAyABKAQSLQoNc3ViYWdlbnRfdHlwZRgEIAEoCzIWLmFnZW50LnYxLlN1YmFnZW50VHlwZSK3BwoaQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUSEQoJdHVybnNfb2xkGAIgAygMEiEKGXJvb3RfcHJvbXB0X21lc3NhZ2VzX2pzb24YASADKAwSDQoFdHVybnMYCCADKAwSDQoFdG9kb3MYAyADKAwSGgoScGVuZGluZ190b29sX2NhbGxzGAQgAygJEjkKDXRva2VuX2RldGFpbHMYBSABKAsyIi5hZ2VudC52MS5Db252ZXJzYXRpb25Ub2tlbkRldGFpbHMSFAoHc3VtbWFyeRgGIAEoDEgAiAEBEhEKBHBsYW4YByABKAxIAYgBARIfChdwcmV2aW91c193b3Jrc3BhY2VfdXJpcxgJIAMoCRIRCgRtb2RlGAogASgFSAKIAQESHAoPc3VtbWFyeV9hcmNoaXZlGAsgASgMSAOIAQESSQoLZmlsZV9zdGF0ZXMYDCADKAsyNC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZS5GaWxlU3RhdGVzRW50cnkSTgoOZmlsZV9zdGF0ZXNfdjIYDyADKAsyNi5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZS5GaWxlU3RhdGVzVjJFbnRyeRIYChBzdW1tYXJ5X2FyY2hpdmVzGA0gAygMEioKDHR1cm5fdGltaW5ncxgOIAMoCzIULmFnZW50LnYxLlN0ZXBUaW1pbmcSUQoPc3ViYWdlbnRfc3RhdGVzGBAgAygLMjguYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUuU3ViYWdlbnRTdGF0ZXNFbnRyeRIaChJzZWxmX3N1bW1hcnlfY291bnQYESABKA0SEgoKcmVhZF9wYXRocxgSIAMoCRoxCg9GaWxlU3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARpRChFGaWxlU3RhdGVzVjJFbnRyeRILCgNrZXkYASABKAkSKwoFdmFsdWUYAiABKAsyHC5hZ2VudC52MS5GaWxlU3RhdGVTdHJ1Y3R1cmU6AjgBGlcKE1N1YmFnZW50U3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAuYWdlbnQudjEuU3ViYWdlbnRQZXJzaXN0ZWRTdGF0ZToCOAFCCgoIX3N1bW1hcnlCBwoFX3BsYW5CBwoFX21vZGVCEgoQX3N1bW1hcnlfYXJjaGl2ZSIRCg9UaGlua2luZ0RldGFpbHMiSAoRQXBpS2V5Q3JlZGVudGlhbHMSDwoHYXBpX2tleRgBIAEoCRIVCghiYXNlX3VybBgCIAEoCUgAiAEBQgsKCV9iYXNlX3VybCJJChBBenVyZUNyZWRlbnRpYWxzEg8KB2FwaV9rZXkYASABKAkSEAoIYmFzZV91cmwYAiABKAkSEgoKZGVwbG95bWVudBgDIAEoCSJ6ChJCZWRyb2NrQ3JlZGVudGlhbHMSEgoKYWNjZXNzX2tleRgBIAEoCRISCgpzZWNyZXRfa2V5GAIgASgJEg4KBnJlZ2lvbhgDIAEoCRIaCg1zZXNzaW9uX3Rva2VuGAQgASgJSACIAQFCEAoOX3Nlc3Npb25fdG9rZW4isQMKDE1vZGVsRGV0YWlscxIQCghtb2RlbF9pZBgBIAEoCRIYChBkaXNwbGF5X21vZGVsX2lkGAMgASgJEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIaChJkaXNwbGF5X25hbWVfc2hvcnQYBSABKAkSDwoHYWxpYXNlcxgGIAMoCRI4ChB0aGlua2luZ19kZXRhaWxzGAIgASgLMhkuYWdlbnQudjEuVGhpbmtpbmdEZXRhaWxzSAGIAQESFQoIbWF4X21vZGUYByABKAhIAogBARI6ChNhcGlfa2V5X2NyZWRlbnRpYWxzGAggASgLMhsuYWdlbnQudjEuQXBpS2V5Q3JlZGVudGlhbHNIABI3ChFhenVyZV9jcmVkZW50aWFscxgJIAEoCzIaLmFnZW50LnYxLkF6dXJlQ3JlZGVudGlhbHNIABI7ChNiZWRyb2NrX2NyZWRlbnRpYWxzGAogASgLMhwuYWdlbnQudjEuQmVkcm9ja0NyZWRlbnRpYWxzSABCDQoLY3JlZGVudGlhbHNCEwoRX3RoaW5raW5nX2RldGFpbHNCCwoJX21heF9tb2RlIrcCCg5SZXF1ZXN0ZWRNb2RlbBIQCghtb2RlbF9pZBgBIAEoCRIQCghtYXhfbW9kZRgCIAEoCBJACgpwYXJhbWV0ZXJzGAMgAygLMiwuYWdlbnQudjEuUmVxdWVzdGVkTW9kZWxfTW9kZWxQYXJhbWV0ZXJieXRlcxI6ChNhcGlfa2V5X2NyZWRlbnRpYWxzGAQgASgLMhsuYWdlbnQudjEuQXBpS2V5Q3JlZGVudGlhbHNIABI3ChFhenVyZV9jcmVkZW50aWFscxgFIAEoCzIaLmFnZW50LnYxLkF6dXJlQ3JlZGVudGlhbHNIABI7ChNiZWRyb2NrX2NyZWRlbnRpYWxzGAYgASgLMhwuYWdlbnQudjEuQmVkcm9ja0NyZWRlbnRpYWxzSABCDQoLY3JlZGVudGlhbHMiPwoiUmVxdWVzdGVkTW9kZWxfTW9kZWxQYXJhbWV0ZXJieXRlcxIKCgJpZBgBIAEoCRINCgV2YWx1ZRgCIAEoCSK5BAoPQWdlbnRSdW5SZXF1ZXN0EkAKEmNvbnZlcnNhdGlvbl9zdGF0ZRgBIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlEiwKBmFjdGlvbhgCIAEoCzIcLmFnZW50LnYxLkNvbnZlcnNhdGlvbkFjdGlvbhItCg1tb2RlbF9kZXRhaWxzGAMgASgLMhYuYWdlbnQudjEuTW9kZWxEZXRhaWxzEjYKD3JlcXVlc3RlZF9tb2RlbBgJIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RlZE1vZGVsSACIAQESJQoJbWNwX3Rvb2xzGAQgASgLMhIuYWdlbnQudjEuTWNwVG9vbHMSHAoPY29udmVyc2F0aW9uX2lkGAUgASgJSAGIAQESRAoXbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnMYBiABKAsyHi5hZ2VudC52MS5NY3BGaWxlU3lzdGVtT3B0aW9uc0gCiAEBEjIKDXNraWxsX29wdGlvbnMYByABKAsyFi5hZ2VudC52MS5Ta2lsbE9wdGlvbnNIA4gBARIhChRjdXN0b21fc3lzdGVtX3Byb21wdBgIIAEoCUgEiAEBQhIKEF9yZXF1ZXN0ZWRfbW9kZWxCEgoQX2NvbnZlcnNhdGlvbl9pZEIaChhfbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnNCEAoOX3NraWxsX29wdGlvbnNCFwoVX2N1c3RvbV9zeXN0ZW1fcHJvbXB0Ih8KD1RleHREZWx0YVVwZGF0ZRIMCgR0ZXh0GAEgASgJImYKFVRvb2xDYWxsU3RhcnRlZFVwZGF0ZRIPCgdjYWxsX2lkGAEgASgJEiUKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsEhUKDW1vZGVsX2NhbGxfaWQYAyABKAkiaAoXVG9vbENhbGxDb21wbGV0ZWRVcGRhdGUSDwoHY2FsbF9pZBgBIAEoCRIlCgl0b29sX2NhbGwYAiABKAsyEi5hZ2VudC52MS5Ub29sQ2FsbBIVCg1tb2RlbF9jYWxsX2lkGAMgASgJIm8KE1Rvb2xDYWxsRGVsdGFVcGRhdGUSDwoHY2FsbF9pZBgBIAEoCRIwCg90b29sX2NhbGxfZGVsdGEYAiABKAsyFy5hZ2VudC52MS5Ub29sQ2FsbERlbHRhEhUKDW1vZGVsX2NhbGxfaWQYAyABKAkifwoVUGFydGlhbFRvb2xDYWxsVXBkYXRlEg8KB2NhbGxfaWQYASABKAkSJQoJdG9vbF9jYWxsGAIgASgLMhIuYWdlbnQudjEuVG9vbENhbGwSFwoPYXJnc190ZXh0X2RlbHRhGAMgASgJEhUKDW1vZGVsX2NhbGxfaWQYBCABKAkiIwoTVGhpbmtpbmdEZWx0YVVwZGF0ZRIMCgR0ZXh0GAEgASgJIjcKF1RoaW5raW5nQ29tcGxldGVkVXBkYXRlEhwKFHRoaW5raW5nX2R1cmF0aW9uX21zGAEgASgFIiIKEFRva2VuRGVsdGFVcGRhdGUSDgoGdG9rZW5zGAEgASgFIiAKDVN1bW1hcnlVcGRhdGUSDwoHc3VtbWFyeRgBIAEoCSIWChRTdW1tYXJ5U3RhcnRlZFVwZGF0ZSIRCg9IZWFydGJlYXRVcGRhdGUiGAoWU3VtbWFyeUNvbXBsZXRlZFVwZGF0ZSLXAQoWU2hlbGxPdXRwdXREZWx0YVVwZGF0ZRItCgZzdGRvdXQYASABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZG91dEgAEi0KBnN0ZGVychgCIAEoCzIbLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RkZXJySAASKQoEZXhpdBgDIAEoCzIZLmFnZW50LnYxLlNoZWxsU3RyZWFtRXhpdEgAEisKBXN0YXJ0GAQgASgLMhouYWdlbnQudjEuU2hlbGxTdHJlYW1TdGFydEgAQgcKBWV2ZW50IhEKD1R1cm5FbmRlZFVwZGF0ZSJIChlVc2VyTWVzc2FnZUFwcGVuZGVkVXBkYXRlEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlIiQKEVN0ZXBTdGFydGVkVXBkYXRlEg8KB3N0ZXBfaWQYASABKAQiQAoTU3RlcENvbXBsZXRlZFVwZGF0ZRIPCgdzdGVwX2lkGAEgASgEEhgKEHN0ZXBfZHVyYXRpb25fbXMYAiABKAMi7wcKEUludGVyYWN0aW9uVXBkYXRlEi8KCnRleHRfZGVsdGEYASABKAsyGS5hZ2VudC52MS5UZXh0RGVsdGFVcGRhdGVIABI8ChFwYXJ0aWFsX3Rvb2xfY2FsbBgHIAEoCzIfLmFnZW50LnYxLlBhcnRpYWxUb29sQ2FsbFVwZGF0ZUgAEjgKD3Rvb2xfY2FsbF9kZWx0YRgPIAEoCzIdLmFnZW50LnYxLlRvb2xDYWxsRGVsdGFVcGRhdGVIABI8ChF0b29sX2NhbGxfc3RhcnRlZBgCIAEoCzIfLmFnZW50LnYxLlRvb2xDYWxsU3RhcnRlZFVwZGF0ZUgAEkAKE3Rvb2xfY2FsbF9jb21wbGV0ZWQYAyABKAsyIS5hZ2VudC52MS5Ub29sQ2FsbENvbXBsZXRlZFVwZGF0ZUgAEjcKDnRoaW5raW5nX2RlbHRhGAQgASgLMh0uYWdlbnQudjEuVGhpbmtpbmdEZWx0YVVwZGF0ZUgAEj8KEnRoaW5raW5nX2NvbXBsZXRlZBgFIAEoCzIhLmFnZW50LnYxLlRoaW5raW5nQ29tcGxldGVkVXBkYXRlSAASRAoVdXNlcl9tZXNzYWdlX2FwcGVuZGVkGAYgASgLMiMuYWdlbnQudjEuVXNlck1lc3NhZ2VBcHBlbmRlZFVwZGF0ZUgAEjEKC3Rva2VuX2RlbHRhGAggASgLMhouYWdlbnQudjEuVG9rZW5EZWx0YVVwZGF0ZUgAEioKB3N1bW1hcnkYCSABKAsyFy5hZ2VudC52MS5TdW1tYXJ5VXBkYXRlSAASOQoPc3VtbWFyeV9zdGFydGVkGAogASgLMh4uYWdlbnQudjEuU3VtbWFyeVN0YXJ0ZWRVcGRhdGVIABI9ChFzdW1tYXJ5X2NvbXBsZXRlZBgLIAEoCzIgLmFnZW50LnYxLlN1bW1hcnlDb21wbGV0ZWRVcGRhdGVIABI+ChJzaGVsbF9vdXRwdXRfZGVsdGEYDCABKAsyIC5hZ2VudC52MS5TaGVsbE91dHB1dERlbHRhVXBkYXRlSAASLgoJaGVhcnRiZWF0GA0gASgLMhkuYWdlbnQudjEuSGVhcnRiZWF0VXBkYXRlSAASLwoKdHVybl9lbmRlZBgOIAEoCzIZLmFnZW50LnYxLlR1cm5FbmRlZFVwZGF0ZUgAEjMKDHN0ZXBfc3RhcnRlZBgQIAEoCzIbLmFnZW50LnYxLlN0ZXBTdGFydGVkVXBkYXRlSAASNwoOc3RlcF9jb21wbGV0ZWQYESABKAsyHS5hZ2VudC52MS5TdGVwQ29tcGxldGVkVXBkYXRlSABCCQoHbWVzc2FnZSKaBAoQSW50ZXJhY3Rpb25RdWVyeRIKCgJpZBgBIAEoDRJDChh3ZWJfc2VhcmNoX3JlcXVlc3RfcXVlcnkYAiABKAsyHy5hZ2VudC52MS5XZWJTZWFyY2hSZXF1ZXN0UXVlcnlIABJPCh5hc2tfcXVlc3Rpb25faW50ZXJhY3Rpb25fcXVlcnkYAyABKAsyJS5hZ2VudC52MS5Bc2tRdWVzdGlvbkludGVyYWN0aW9uUXVlcnlIABJFChlzd2l0Y2hfbW9kZV9yZXF1ZXN0X3F1ZXJ5GAQgASgLMiAuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RRdWVyeUgAEkMKGGV4YV9zZWFyY2hfcmVxdWVzdF9xdWVyeRgFIAEoCzIfLmFnZW50LnYxLkV4YVNlYXJjaFJlcXVlc3RRdWVyeUgAEkEKF2V4YV9mZXRjaF9yZXF1ZXN0X3F1ZXJ5GAYgASgLMh4uYWdlbnQudjEuRXhhRmV0Y2hSZXF1ZXN0UXVlcnlIABJFChljcmVhdGVfcGxhbl9yZXF1ZXN0X3F1ZXJ5GAcgASgLMiAuYWdlbnQudjEuQ3JlYXRlUGxhblJlcXVlc3RRdWVyeUgAEkUKGXNldHVwX3ZtX2Vudmlyb25tZW50X2FyZ3MYCCABKAsyIC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRBcmdzSABCBwoFcXVlcnkixgQKE0ludGVyYWN0aW9uUmVzcG9uc2USCgoCaWQYASABKA0SSQobd2ViX3NlYXJjaF9yZXF1ZXN0X3Jlc3BvbnNlGAIgASgLMiIuYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlSAASVQohYXNrX3F1ZXN0aW9uX2ludGVyYWN0aW9uX3Jlc3BvbnNlGAMgASgLMiguYWdlbnQudjEuQXNrUXVlc3Rpb25JbnRlcmFjdGlvblJlc3BvbnNlSAASSwocc3dpdGNoX21vZGVfcmVxdWVzdF9yZXNwb25zZRgEIAEoCzIjLmFnZW50LnYxLlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VIABJJChtleGFfc2VhcmNoX3JlcXVlc3RfcmVzcG9uc2UYBSABKAsyIi5hZ2VudC52MS5FeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VIABJHChpleGFfZmV0Y2hfcmVxdWVzdF9yZXNwb25zZRgGIAEoCzIhLmFnZW50LnYxLkV4YUZldGNoUmVxdWVzdFJlc3BvbnNlSAASSwocY3JlYXRlX3BsYW5fcmVxdWVzdF9yZXNwb25zZRgHIAEoCzIjLmFnZW50LnYxLkNyZWF0ZVBsYW5SZXF1ZXN0UmVzcG9uc2VIABJJChtzZXR1cF92bV9lbnZpcm9ubWVudF9yZXN1bHQYCCABKAsyIi5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRSZXN1bHRIAEIICgZyZXN1bHQiXAobQXNrUXVlc3Rpb25JbnRlcmFjdGlvblF1ZXJ5EicKBGFyZ3MYASABKAsyGS5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3MSFAoMdG9vbF9jYWxsX2lkGAIgASgJIk0KHkFza1F1ZXN0aW9uSW50ZXJhY3Rpb25SZXNwb25zZRIrCgZyZXN1bHQYASABKAsyGy5hZ2VudC52MS5Bc2tRdWVzdGlvblJlc3VsdCIRCg9DbGllbnRIZWFydGJlYXQixgQKDlByZXdhcm1SZXF1ZXN0Ei0KDW1vZGVsX2RldGFpbHMYASABKAsyFi5hZ2VudC52MS5Nb2RlbERldGFpbHMSNgoPcmVxdWVzdGVkX21vZGVsGAkgASgLMhguYWdlbnQudjEuUmVxdWVzdGVkTW9kZWxIAIgBARIcCg9jb252ZXJzYXRpb25faWQYAiABKAlIAYgBARJAChJjb252ZXJzYXRpb25fc3RhdGUYAyABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZRIlCgltY3BfdG9vbHMYBCABKAsyEi5hZ2VudC52MS5NY3BUb29scxJEChdtY3BfZmlsZV9zeXN0ZW1fb3B0aW9ucxgFIAEoCzIeLmFnZW50LnYxLk1jcEZpbGVTeXN0ZW1PcHRpb25zSAKIAQESHwoSYmVzdF9vZl9uX2dyb3VwX2lkGAYgASgJSAOIAQESKAobdHJ5X3VzZV9iZXN0X29mX25fcHJvbW90aW9uGAcgASgISASIAQESIQoUY3VzdG9tX3N5c3RlbV9wcm9tcHQYCCABKAlIBYgBAUISChBfcmVxdWVzdGVkX21vZGVsQhIKEF9jb252ZXJzYXRpb25faWRCGgoYX21jcF9maWxlX3N5c3RlbV9vcHRpb25zQhUKE19iZXN0X29mX25fZ3JvdXBfaWRCHgocX3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbkIXChVfY3VzdG9tX3N5c3RlbV9wcm9tcHQiHQoPRXhlY1NlcnZlckFib3J0EgoKAmlkGAEgASgNIlEKGEV4ZWNTZXJ2ZXJDb250cm9sTWVzc2FnZRIqCgVhYm9ydBgBIAEoCzIZLmFnZW50LnYxLkV4ZWNTZXJ2ZXJBYm9ydEgAQgkKB21lc3NhZ2Ui+AMKEkFnZW50Q2xpZW50TWVzc2FnZRIwCgtydW5fcmVxdWVzdBgBIAEoCzIZLmFnZW50LnYxLkFnZW50UnVuUmVxdWVzdEgAEjoKE2V4ZWNfY2xpZW50X21lc3NhZ2UYAiABKAsyGy5hZ2VudC52MS5FeGVjQ2xpZW50TWVzc2FnZUgAEkkKG2V4ZWNfY2xpZW50X2NvbnRyb2xfbWVzc2FnZRgFIAEoCzIiLmFnZW50LnYxLkV4ZWNDbGllbnRDb250cm9sTWVzc2FnZUgAEjYKEWt2X2NsaWVudF9tZXNzYWdlGAMgASgLMhkuYWdlbnQudjEuS3ZDbGllbnRNZXNzYWdlSAASOwoTY29udmVyc2F0aW9uX2FjdGlvbhgEIAEoCzIcLmFnZW50LnYxLkNvbnZlcnNhdGlvbkFjdGlvbkgAEj0KFGludGVyYWN0aW9uX3Jlc3BvbnNlGAYgASgLMh0uYWdlbnQudjEuSW50ZXJhY3Rpb25SZXNwb25zZUgAEjUKEGNsaWVudF9oZWFydGJlYXQYByABKAsyGS5hZ2VudC52MS5DbGllbnRIZWFydGJlYXRIABIzCg9wcmV3YXJtX3JlcXVlc3QYCCABKAsyGC5hZ2VudC52MS5QcmV3YXJtUmVxdWVzdEgAQgkKB21lc3NhZ2UiogMKEkFnZW50U2VydmVyTWVzc2FnZRI5ChJpbnRlcmFjdGlvbl91cGRhdGUYASABKAsyGy5hZ2VudC52MS5JbnRlcmFjdGlvblVwZGF0ZUgAEjoKE2V4ZWNfc2VydmVyX21lc3NhZ2UYAiABKAsyGy5hZ2VudC52MS5FeGVjU2VydmVyTWVzc2FnZUgAEkkKG2V4ZWNfc2VydmVyX2NvbnRyb2xfbWVzc2FnZRgFIAEoCzIiLmFnZW50LnYxLkV4ZWNTZXJ2ZXJDb250cm9sTWVzc2FnZUgAEk4KHmNvbnZlcnNhdGlvbl9jaGVja3BvaW50X3VwZGF0ZRgDIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlSAASNgoRa3Zfc2VydmVyX21lc3NhZ2UYBCABKAsyGS5hZ2VudC52MS5LdlNlcnZlck1lc3NhZ2VIABI3ChFpbnRlcmFjdGlvbl9xdWVyeRgHIAEoCzIaLmFnZW50LnYxLkludGVyYWN0aW9uUXVlcnlIAEIJCgdtZXNzYWdlIigKEE5hbWVBZ2VudFJlcXVlc3QSFAoMdXNlcl9tZXNzYWdlGAEgASgJIiEKEU5hbWVBZ2VudFJlc3BvbnNlEgwKBG5hbWUYASABKAkiMgoWR2V0VXNhYmxlTW9kZWxzUmVxdWVzdBIYChBjdXN0b21fbW9kZWxfaWRzGAEgAygJIkEKF0dldFVzYWJsZU1vZGVsc1Jlc3BvbnNlEiYKBm1vZGVscxgBIAMoCzIWLmFnZW50LnYxLk1vZGVsRGV0YWlscyIeChxHZXREZWZhdWx0TW9kZWxGb3JDbGlSZXF1ZXN0IkYKHUdldERlZmF1bHRNb2RlbEZvckNsaVJlc3BvbnNlEiUKBW1vZGVsGAEgASgLMhYuYWdlbnQudjEuTW9kZWxEZXRhaWxzIh8KHUdldEFsbG93ZWRNb2RlbEludGVudHNSZXF1ZXN0IjcKHkdldEFsbG93ZWRNb2RlbEludGVudHNSZXNwb25zZRIVCg1tb2RlbF9pbnRlbnRzGAEgAygJIpcCChNJZGVFZGl0b3JzU3RhdGVGaWxlEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSFQoNYWJzb2x1dGVfcGF0aBgCIAEoCRIhChRpc19jdXJyZW50bHlfZm9jdXNlZBgDIAEoCEgAiAEBEiAKE2N1cnJlbnRfbGluZV9udW1iZXIYBCABKAVIAYgBARIeChFjdXJyZW50X2xpbmVfdGV4dBgFIAEoCUgCiAEBEhcKCmxpbmVfY291bnQYBiABKAVIA4gBAUIXChVfaXNfY3VycmVudGx5X2ZvY3VzZWRCFgoUX2N1cnJlbnRfbGluZV9udW1iZXJCFAoSX2N1cnJlbnRfbGluZV90ZXh0Qg0KC19saW5lX2NvdW50IlMKE0lkZUVkaXRvcnNTdGF0ZUxpdGUSPAoVcmVjZW50bHlfdmlld2VkX2ZpbGVzGAEgAygLMh0uYWdlbnQudjEuSWRlRWRpdG9yc1N0YXRlRmlsZSJ0ChZBcHBseUFnZW50RGlmZlRvb2xDYWxsEioKBGFyZ3MYASABKAsyHC5hZ2VudC52MS5BcHBseUFnZW50RGlmZkFyZ3MSLgoGcmVzdWx0GAIgASgLMh4uYWdlbnQudjEuQXBwbHlBZ2VudERpZmZSZXN1bHQiJgoSQXBwbHlBZ2VudERpZmZBcmdzEhAKCGFnZW50X2lkGAEgASgJIoQBChRBcHBseUFnZW50RGlmZlJlc3VsdBIyCgdzdWNjZXNzGAEgASgLMh8uYWdlbnQudjEuQXBwbHlBZ2VudERpZmZTdWNjZXNzSAASLgoFZXJyb3IYAiABKAsyHS5hZ2VudC52MS5BcHBseUFnZW50RGlmZkVycm9ySABCCAoGcmVzdWx0Ik4KFUFwcGx5QWdlbnREaWZmU3VjY2VzcxI1Cg9hcHBsaWVkX2NoYW5nZXMYASADKAsyHC5hZ2VudC52MS5BcHBsaWVkQWdlbnRDaGFuZ2Ui6QEKEkFwcGxpZWRBZ2VudENoYW5nZRIMCgRwYXRoGAEgASgJEhMKC2NoYW5nZV90eXBlGAIgASgFEhsKDmJlZm9yZV9jb250ZW50GAMgASgJSACIAQESGgoNYWZ0ZXJfY29udGVudBgEIAEoCUgBiAEBEhIKBWVycm9yGAUgASgJSAKIAQESHgoRbWVzc2FnZV9mb3JfbW9kZWwYBiABKAlIA4gBAUIRCg9fYmVmb3JlX2NvbnRlbnRCEAoOX2FmdGVyX2NvbnRlbnRCCAoGX2Vycm9yQhQKEl9tZXNzYWdlX2Zvcl9tb2RlbCJbChNBcHBseUFnZW50RGlmZkVycm9yEg0KBWVycm9yGAEgASgJEjUKD2FwcGxpZWRfY2hhbmdlcxgCIAMoCzIcLmFnZW50LnYxLkFwcGxpZWRBZ2VudENoYW5nZSJrChNBc2tRdWVzdGlvblRvb2xDYWxsEicKBGFyZ3MYASABKAsyGS5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3MSKwoGcmVzdWx0GAIgASgLMhsuYWdlbnQudjEuQXNrUXVlc3Rpb25SZXN1bHQijwEKD0Fza1F1ZXN0aW9uQXJncxINCgV0aXRsZRgBIAEoCRI1CglxdWVzdGlvbnMYAiADKAsyIi5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3NfUXVlc3Rpb24SEQoJcnVuX2FzeW5jGAUgASgIEiMKG2FzeW5jX29yaWdpbmFsX3Rvb2xfY2FsbF9pZBgGIAEoCSKBAQoYQXNrUXVlc3Rpb25BcmdzX1F1ZXN0aW9uEgoKAmlkGAEgASgJEg4KBnByb21wdBgCIAEoCRIxCgdvcHRpb25zGAMgAygLMiAuYWdlbnQudjEuQXNrUXVlc3Rpb25BcmdzX09wdGlvbhIWCg5hbGxvd19tdWx0aXBsZRgEIAEoCCIzChZBc2tRdWVzdGlvbkFyZ3NfT3B0aW9uEgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJIhIKEEFza1F1ZXN0aW9uQXN5bmMi2wEKEUFza1F1ZXN0aW9uUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5Bc2tRdWVzdGlvblN1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLkFza1F1ZXN0aW9uRXJyb3JIABIxCghyZWplY3RlZBgDIAEoCzIdLmFnZW50LnYxLkFza1F1ZXN0aW9uUmVqZWN0ZWRIABIrCgVhc3luYxgEIAEoCzIaLmFnZW50LnYxLkFza1F1ZXN0aW9uQXN5bmNIAEIICgZyZXN1bHQiSgoSQXNrUXVlc3Rpb25TdWNjZXNzEjQKB2Fuc3dlcnMYASADKAsyIy5hZ2VudC52MS5Bc2tRdWVzdGlvblN1Y2Nlc3NfQW5zd2VyIk0KGUFza1F1ZXN0aW9uU3VjY2Vzc19BbnN3ZXISEwoLcXVlc3Rpb25faWQYASABKAkSGwoTc2VsZWN0ZWRfb3B0aW9uX2lkcxgCIAMoCSIpChBBc2tRdWVzdGlvbkVycm9yEhUKDWVycm9yX21lc3NhZ2UYASABKAkiJQoTQXNrUXVlc3Rpb25SZWplY3RlZBIOCgZyZWFzb24YASABKAkiiQIKGEJhY2tncm91bmRTaGVsbFNwYXduQXJncxIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEhQKDHRvb2xfY2FsbF9pZBgDIAEoCRI7Cg5wYXJzaW5nX3Jlc3VsdBgEIAEoCzIjLmFnZW50LnYxLlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHQSNAoOc2FuZGJveF9wb2xpY3kYBSABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQESJQodZW5hYmxlX3dyaXRlX3NoZWxsX3N0ZGluX3Rvb2wYBiABKAhCEQoPX3NhbmRib3hfcG9saWN5IoECChpCYWNrZ3JvdW5kU2hlbGxTcGF3blJlc3VsdBI4CgdzdWNjZXNzGAEgASgLMiUuYWdlbnQudjEuQmFja2dyb3VuZFNoZWxsU3Bhd25TdWNjZXNzSAASNAoFZXJyb3IYAiABKAsyIy5hZ2VudC52MS5CYWNrZ3JvdW5kU2hlbGxTcGF3bkVycm9ySAASKwoIcmVqZWN0ZWQYAyABKAsyFy5hZ2VudC52MS5TaGVsbFJlamVjdGVkSAASPAoRcGVybWlzc2lvbl9kZW5pZWQYBCABKAsyHy5hZ2VudC52MS5TaGVsbFBlcm1pc3Npb25EZW5pZWRIAEIICgZyZXN1bHQidQobQmFja2dyb3VuZFNoZWxsU3Bhd25TdWNjZXNzEhAKCHNoZWxsX2lkGAEgASgNEg8KB2NvbW1hbmQYAiABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAyABKAkSEAoDcGlkGAQgASgNSACIAQFCBgoEX3BpZCJWChlCYWNrZ3JvdW5kU2hlbGxTcGF3bkVycm9yEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSDQoFZXJyb3IYAyABKAkiNgoTV3JpdGVTaGVsbFN0ZGluQXJncxIQCghzaGVsbF9pZBgBIAEoDRINCgVjaGFycxgCIAEoCSKHAQoVV3JpdGVTaGVsbFN0ZGluUmVzdWx0EjMKB3N1Y2Nlc3MYASABKAsyIC5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5TdWNjZXNzSAASLwoFZXJyb3IYAiABKAsyHi5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5FcnJvckgAQggKBnJlc3VsdCJdChZXcml0ZVNoZWxsU3RkaW5TdWNjZXNzEhAKCHNoZWxsX2lkGAEgASgNEjEKKXRlcm1pbmFsX2ZpbGVfbGVuZ3RoX2JlZm9yZV9pbnB1dF93cml0dGVuGAIgASgNIiUKFFdyaXRlU2hlbGxTdGRpbkVycm9yEg0KBWVycm9yGAEgASgJIiIKCkNvb3JkaW5hdGUSCQoBeBgBIAEoBRIJCgF5GAIgASgFIlUKD0NvbXB1dGVyVXNlQXJncxIUCgx0b29sX2NhbGxfaWQYASABKAkSLAoHYWN0aW9ucxgCIAMoCzIbLmFnZW50LnYxLkNvbXB1dGVyVXNlQWN0aW9uIoEEChFDb21wdXRlclVzZUFjdGlvbhIvCgptb3VzZV9tb3ZlGAEgASgLMhkuYWdlbnQudjEuTW91c2VNb3ZlQWN0aW9uSAASJgoFY2xpY2sYAiABKAsyFS5hZ2VudC52MS5DbGlja0FjdGlvbkgAEi8KCm1vdXNlX2Rvd24YAyABKAsyGS5hZ2VudC52MS5Nb3VzZURvd25BY3Rpb25IABIrCghtb3VzZV91cBgEIAEoCzIXLmFnZW50LnYxLk1vdXNlVXBBY3Rpb25IABIkCgRkcmFnGAUgASgLMhQuYWdlbnQudjEuRHJhZ0FjdGlvbkgAEigKBnNjcm9sbBgGIAEoCzIWLmFnZW50LnYxLlNjcm9sbEFjdGlvbkgAEiQKBHR5cGUYByABKAsyFC5hZ2VudC52MS5UeXBlQWN0aW9uSAASIgoDa2V5GAggASgLMhMuYWdlbnQudjEuS2V5QWN0aW9uSAASJAoEd2FpdBgJIAEoCzIULmFnZW50LnYxLldhaXRBY3Rpb25IABIwCgpzY3JlZW5zaG90GAogASgLMhouYWdlbnQudjEuU2NyZWVuc2hvdEFjdGlvbkgAEjkKD2N1cnNvcl9wb3NpdGlvbhgLIAEoCzIeLmFnZW50LnYxLkN1cnNvclBvc2l0aW9uQWN0aW9uSABCCAoGYWN0aW9uIjsKD01vdXNlTW92ZUFjdGlvbhIoCgpjb29yZGluYXRlGAEgASgLMhQuYWdlbnQudjEuQ29vcmRpbmF0ZSKYAQoLQ2xpY2tBY3Rpb24SLQoKY29vcmRpbmF0ZRgBIAEoCzIULmFnZW50LnYxLkNvb3JkaW5hdGVIAIgBARIOCgZidXR0b24YAiABKAUSDQoFY291bnQYAyABKAUSGgoNbW9kaWZpZXJfa2V5cxgEIAEoCUgBiAEBQg0KC19jb29yZGluYXRlQhAKDl9tb2RpZmllcl9rZXlzIiEKD01vdXNlRG93bkFjdGlvbhIOCgZidXR0b24YASABKAUiHwoNTW91c2VVcEFjdGlvbhIOCgZidXR0b24YASABKAUiQAoKRHJhZ0FjdGlvbhIiCgRwYXRoGAEgAygLMhQuYWdlbnQudjEuQ29vcmRpbmF0ZRIOCgZidXR0b24YAiABKAUinQEKDFNjcm9sbEFjdGlvbhItCgpjb29yZGluYXRlGAEgASgLMhQuYWdlbnQudjEuQ29vcmRpbmF0ZUgAiAEBEhEKCWRpcmVjdGlvbhgCIAEoBRIOCgZhbW91bnQYAyABKAUSGgoNbW9kaWZpZXJfa2V5cxgEIAEoCUgBiAEBQg0KC19jb29yZGluYXRlQhAKDl9tb2RpZmllcl9rZXlzIhoKClR5cGVBY3Rpb24SDAoEdGV4dBgBIAEoCSJMCglLZXlBY3Rpb24SCwoDa2V5GAEgASgJEh0KEGhvbGRfZHVyYXRpb25fbXMYAiABKAVIAIgBAUITChFfaG9sZF9kdXJhdGlvbl9tcyIhCgpXYWl0QWN0aW9uEhMKC2R1cmF0aW9uX21zGAEgASgFIhIKEFNjcmVlbnNob3RBY3Rpb24iFgoUQ3Vyc29yUG9zaXRpb25BY3Rpb24iewoRQ29tcHV0ZXJVc2VSZXN1bHQSLwoHc3VjY2VzcxgBIAEoCzIcLmFnZW50LnYxLkNvbXB1dGVyVXNlU3VjY2Vzc0gAEisKBWVycm9yGAIgASgLMhouYWdlbnQudjEuQ29tcHV0ZXJVc2VFcnJvckgAQggKBnJlc3VsdCL7AQoSQ29tcHV0ZXJVc2VTdWNjZXNzEhQKDGFjdGlvbl9jb3VudBgBIAEoBRITCgtkdXJhdGlvbl9tcxgCIAEoBRIXCgpzY3JlZW5zaG90GAMgASgJSACIAQESEAoDbG9nGAQgASgJSAGIAQESHAoPc2NyZWVuc2hvdF9wYXRoGAUgASgJSAKIAQESMgoPY3Vyc29yX3Bvc2l0aW9uGAYgASgLMhQuYWdlbnQudjEuQ29vcmRpbmF0ZUgDiAEBQg0KC19zY3JlZW5zaG90QgYKBF9sb2dCEgoQX3NjcmVlbnNob3RfcGF0aEISChBfY3Vyc29yX3Bvc2l0aW9uIsABChBDb21wdXRlclVzZUVycm9yEg0KBWVycm9yGAEgASgJEhQKDGFjdGlvbl9jb3VudBgCIAEoBRITCgtkdXJhdGlvbl9tcxgDIAEoBRIQCgNsb2cYBCABKAlIAIgBARIXCgpzY3JlZW5zaG90GAUgASgJSAGIAQESHAoPc2NyZWVuc2hvdF9wYXRoGAYgASgJSAKIAQFCBgoEX2xvZ0INCgtfc2NyZWVuc2hvdEISChBfc2NyZWVuc2hvdF9wYXRoImsKE0NvbXB1dGVyVXNlVG9vbENhbGwSJwoEYXJncxgBIAEoCzIZLmFnZW50LnYxLkNvbXB1dGVyVXNlQXJncxIrCgZyZXN1bHQYAiABKAsyGy5hZ2VudC52MS5Db21wdXRlclVzZVJlc3VsdCJoChJDcmVhdGVQbGFuVG9vbENhbGwSJgoEYXJncxgBIAEoCzIYLmFnZW50LnYxLkNyZWF0ZVBsYW5BcmdzEioKBnJlc3VsdBgCIAEoCzIaLmFnZW50LnYxLkNyZWF0ZVBsYW5SZXN1bHQiOAoFUGhhc2USDAoEbmFtZRgBIAEoCRIhCgV0b2RvcxgCIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtIpYBCg5DcmVhdGVQbGFuQXJncxIMCgRwbGFuGAEgASgJEiEKBXRvZG9zGAIgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0SEAoIb3ZlcnZpZXcYAyABKAkSDAoEbmFtZRgEIAEoCRISCgppc19wcm9qZWN0GAUgASgIEh8KBnBoYXNlcxgGIAMoCzIPLmFnZW50LnYxLlBoYXNlIooBChBDcmVhdGVQbGFuUmVzdWx0EhAKCHBsYW5fdXJpGAMgASgJEi4KB3N1Y2Nlc3MYASABKAsyGy5hZ2VudC52MS5DcmVhdGVQbGFuU3VjY2Vzc0gAEioKBWVycm9yGAIgASgLMhkuYWdlbnQudjEuQ3JlYXRlUGxhbkVycm9ySABCCAoGcmVzdWx0IhMKEUNyZWF0ZVBsYW5TdWNjZXNzIiAKD0NyZWF0ZVBsYW5FcnJvchINCgVlcnJvchgBIAEoCSJWChZDcmVhdGVQbGFuUmVxdWVzdFF1ZXJ5EiYKBGFyZ3MYASABKAsyGC5hZ2VudC52MS5DcmVhdGVQbGFuQXJncxIUCgx0b29sX2NhbGxfaWQYAiABKAkiRwoZQ3JlYXRlUGxhblJlcXVlc3RSZXNwb25zZRIqCgZyZXN1bHQYASABKAsyGi5hZ2VudC52MS5DcmVhdGVQbGFuUmVzdWx0IhYKFEN1cnNvclJ1bGVUeXBlR2xvYmFsIigKF0N1cnNvclJ1bGVUeXBlRmlsZUdsb2JzEg0KBWdsb2JzGAEgAygJIjEKGkN1cnNvclJ1bGVUeXBlQWdlbnRGZXRjaGVkEhMKC2Rlc2NyaXB0aW9uGAEgASgJIiAKHkN1cnNvclJ1bGVUeXBlTWFudWFsbHlBdHRhY2hlZCKLAgoOQ3Vyc29yUnVsZVR5cGUSMAoGZ2xvYmFsGAEgASgLMh4uYWdlbnQudjEuQ3Vyc29yUnVsZVR5cGVHbG9iYWxIABI5CgxmaWxlX2dsb2JiZWQYAiABKAsyIS5hZ2VudC52MS5DdXJzb3JSdWxlVHlwZUZpbGVHbG9ic0gAEj0KDWFnZW50X2ZldGNoZWQYAyABKAsyJC5hZ2VudC52MS5DdXJzb3JSdWxlVHlwZUFnZW50RmV0Y2hlZEgAEkUKEW1hbnVhbGx5X2F0dGFjaGVkGAQgASgLMiguYWdlbnQudjEuQ3Vyc29yUnVsZVR5cGVNYW51YWxseUF0dGFjaGVkSABCBgoEdHlwZSLIAQoKQ3Vyc29yUnVsZRIRCglmdWxsX3BhdGgYASABKAkSDwoHY29udGVudBgCIAEoCRImCgR0eXBlGAMgASgLMhguYWdlbnQudjEuQ3Vyc29yUnVsZVR5cGUSDgoGc291cmNlGAQgASgFEh4KEWdpdF9yZW1vdGVfb3JpZ2luGAUgASgJSACIAQESGAoLcGFyc2VfZXJyb3IYBiABKAlIAYgBAUIUChJfZ2l0X3JlbW90ZV9vcmlnaW5CDgoMX3BhcnNlX2Vycm9yIjAKCkRlbGV0ZUFyZ3MSDAoEcGF0aBgBIAEoCRIUCgx0b29sX2NhbGxfaWQYAiABKAki7QIKDERlbGV0ZVJlc3VsdBIqCgdzdWNjZXNzGAEgASgLMhcuYWdlbnQudjEuRGVsZXRlU3VjY2Vzc0gAEjYKDmZpbGVfbm90X2ZvdW5kGAIgASgLMhwuYWdlbnQudjEuRGVsZXRlRmlsZU5vdEZvdW5kSAASKwoIbm90X2ZpbGUYAyABKAsyFy5hZ2VudC52MS5EZWxldGVOb3RGaWxlSAASPQoRcGVybWlzc2lvbl9kZW5pZWQYBCABKAsyIC5hZ2VudC52MS5EZWxldGVQZXJtaXNzaW9uRGVuaWVkSAASLQoJZmlsZV9idXN5GAUgASgLMhguYWdlbnQudjEuRGVsZXRlRmlsZUJ1c3lIABIsCghyZWplY3RlZBgGIAEoCzIYLmFnZW50LnYxLkRlbGV0ZVJlamVjdGVkSAASJgoFZXJyb3IYByABKAsyFS5hZ2VudC52MS5EZWxldGVFcnJvckgAQggKBnJlc3VsdCJcCg1EZWxldGVTdWNjZXNzEgwKBHBhdGgYASABKAkSFAoMZGVsZXRlZF9maWxlGAIgASgJEhEKCWZpbGVfc2l6ZRgDIAEoAxIUCgxwcmV2X2NvbnRlbnQYBCABKAkiIgoSRGVsZXRlRmlsZU5vdEZvdW5kEgwKBHBhdGgYASABKAkiMgoNRGVsZXRlTm90RmlsZRIMCgRwYXRoGAEgASgJEhMKC2FjdHVhbF90eXBlGAIgASgJIlkKFkRlbGV0ZVBlcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCRIcChRjbGllbnRfdmlzaWJsZV9lcnJvchgCIAEoCRITCgtpc19yZWFkb25seRgDIAEoCCIeCg5EZWxldGVGaWxlQnVzeRIMCgRwYXRoGAEgASgJIi4KDkRlbGV0ZVJlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIioKC0RlbGV0ZUVycm9yEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkiXAoORGVsZXRlVG9vbENhbGwSIgoEYXJncxgBIAEoCzIULmFnZW50LnYxLkRlbGV0ZUFyZ3MSJgoGcmVzdWx0GAIgASgLMhYuYWdlbnQudjEuRGVsZXRlUmVzdWx0IjUKD0RpYWdub3N0aWNzQXJncxIMCgRwYXRoGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSKvAgoRRGlhZ25vc3RpY3NSZXN1bHQSLwoHc3VjY2VzcxgBIAEoCzIcLmFnZW50LnYxLkRpYWdub3N0aWNzU3VjY2Vzc0gAEisKBWVycm9yGAIgASgLMhouYWdlbnQudjEuRGlhZ25vc3RpY3NFcnJvckgAEjEKCHJlamVjdGVkGAMgASgLMh0uYWdlbnQudjEuRGlhZ25vc3RpY3NSZWplY3RlZEgAEjsKDmZpbGVfbm90X2ZvdW5kGAQgASgLMiEuYWdlbnQudjEuRGlhZ25vc3RpY3NGaWxlTm90Rm91bmRIABJCChFwZXJtaXNzaW9uX2RlbmllZBgFIAEoCzIlLmFnZW50LnYxLkRpYWdub3N0aWNzUGVybWlzc2lvbkRlbmllZEgAQggKBnJlc3VsdCJoChJEaWFnbm9zdGljc1N1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIpCgtkaWFnbm9zdGljcxgCIAMoCzIULmFnZW50LnYxLkRpYWdub3N0aWMSGQoRdG90YWxfZGlhZ25vc3RpY3MYAyABKAUifwoKRGlhZ25vc3RpYxIQCghzZXZlcml0eRgBIAEoBRIeCgVyYW5nZRgCIAEoCzIPLmFnZW50LnYxLlJhbmdlEg8KB21lc3NhZ2UYAyABKAkSDgoGc291cmNlGAQgASgJEgwKBGNvZGUYBSABKAkSEAoIaXNfc3RhbGUYBiABKAgiLwoQRGlhZ25vc3RpY3NFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIjMKE0RpYWdub3N0aWNzUmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiJwoXRGlhZ25vc3RpY3NGaWxlTm90Rm91bmQSDAoEcGF0aBgBIAEoCSIrChtEaWFnbm9zdGljc1Blcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCSJICghFZGl0QXJncxIMCgRwYXRoGAEgASgJEhsKDnN0cmVhbV9jb250ZW50GAYgASgJSACIAQFCEQoPX3N0cmVhbV9jb250ZW50ItYCCgpFZGl0UmVzdWx0EigKB3N1Y2Nlc3MYASABKAsyFS5hZ2VudC52MS5FZGl0U3VjY2Vzc0gAEjQKDmZpbGVfbm90X2ZvdW5kGAIgASgLMhouYWdlbnQudjEuRWRpdEZpbGVOb3RGb3VuZEgAEkQKFnJlYWRfcGVybWlzc2lvbl9kZW5pZWQYAyABKAsyIi5hZ2VudC52MS5FZGl0UmVhZFBlcm1pc3Npb25EZW5pZWRIABJGChd3cml0ZV9wZXJtaXNzaW9uX2RlbmllZBgEIAEoCzIjLmFnZW50LnYxLkVkaXRXcml0ZVBlcm1pc3Npb25EZW5pZWRIABIqCghyZWplY3RlZBgGIAEoCzIWLmFnZW50LnYxLkVkaXRSZWplY3RlZEgAEiQKBWVycm9yGAcgASgLMhMuYWdlbnQudjEuRWRpdEVycm9ySABCCAoGcmVzdWx0IqQCCgtFZGl0U3VjY2VzcxIMCgRwYXRoGAEgASgJEhgKC2xpbmVzX2FkZGVkGAMgASgFSACIAQESGgoNbGluZXNfcmVtb3ZlZBgEIAEoBUgBiAEBEhgKC2RpZmZfc3RyaW5nGAUgASgJSAKIAQESJQoYYmVmb3JlX2Z1bGxfZmlsZV9jb250ZW50GAYgASgJSAOIAQESHwoXYWZ0ZXJfZnVsbF9maWxlX2NvbnRlbnQYByABKAkSFAoHbWVzc2FnZRgIIAEoCUgEiAEBQg4KDF9saW5lc19hZGRlZEIQCg5fbGluZXNfcmVtb3ZlZEIOCgxfZGlmZl9zdHJpbmdCGwoZX2JlZm9yZV9mdWxsX2ZpbGVfY29udGVudEIKCghfbWVzc2FnZSIgChBFZGl0RmlsZU5vdEZvdW5kEgwKBHBhdGgYASABKAkiKAoYRWRpdFJlYWRQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkiTQoZRWRpdFdyaXRlUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJEhMKC2lzX3JlYWRvbmx5GAMgASgIIiwKDEVkaXRSZWplY3RlZBIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJiCglFZGl0RXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCRIgChNtb2RlbF92aXNpYmxlX2Vycm9yGAUgASgJSACIAQFCFgoUX21vZGVsX3Zpc2libGVfZXJyb3IiVgoMRWRpdFRvb2xDYWxsEiAKBGFyZ3MYASABKAsyEi5hZ2VudC52MS5FZGl0QXJncxIkCgZyZXN1bHQYAiABKAsyFC5hZ2VudC52MS5FZGl0UmVzdWx0IjEKEUVkaXRUb29sQ2FsbERlbHRhEhwKFHN0cmVhbV9jb250ZW50X2RlbHRhGAEgASgJIjEKDEV4YUZldGNoQXJncxILCgNpZHMYASADKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIqIBCg5FeGFGZXRjaFJlc3VsdBIsCgdzdWNjZXNzGAEgASgLMhkuYWdlbnQudjEuRXhhRmV0Y2hTdWNjZXNzSAASKAoFZXJyb3IYAiABKAsyFy5hZ2VudC52MS5FeGFGZXRjaEVycm9ySAASLgoIcmVqZWN0ZWQYAyABKAsyGi5hZ2VudC52MS5FeGFGZXRjaFJlamVjdGVkSABCCAoGcmVzdWx0Ij4KD0V4YUZldGNoU3VjY2VzcxIrCghjb250ZW50cxgBIAMoCzIZLmFnZW50LnYxLkV4YUZldGNoQ29udGVudCIeCg1FeGFGZXRjaEVycm9yEg0KBWVycm9yGAEgASgJIiIKEEV4YUZldGNoUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlMKD0V4YUZldGNoQ29udGVudBINCgV0aXRsZRgBIAEoCRILCgN1cmwYAiABKAkSDAoEdGV4dBgDIAEoCRIWCg5wdWJsaXNoZWRfZGF0ZRgEIAEoCSJiChBFeGFGZXRjaFRvb2xDYWxsEiQKBGFyZ3MYASABKAsyFi5hZ2VudC52MS5FeGFGZXRjaEFyZ3MSKAoGcmVzdWx0GAIgASgLMhguYWdlbnQudjEuRXhhRmV0Y2hSZXN1bHQiPAoURXhhRmV0Y2hSZXF1ZXN0UXVlcnkSJAoEYXJncxgBIAEoCzIWLmFnZW50LnYxLkV4YUZldGNoQXJncyKjAQoXRXhhRmV0Y2hSZXF1ZXN0UmVzcG9uc2USPgoIYXBwcm92ZWQYASABKAsyKi5hZ2VudC52MS5FeGFGZXRjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZEgAEj4KCHJlamVjdGVkGAIgASgLMiouYWdlbnQudjEuRXhhRmV0Y2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWRIAEIICgZyZXN1bHQiIgogRXhhRmV0Y2hSZXF1ZXN0UmVzcG9uc2VfQXBwcm92ZWQiMgogRXhhRmV0Y2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIlcKDUV4YVNlYXJjaEFyZ3MSDQoFcXVlcnkYASABKAkSDAoEdHlwZRgCIAEoCRITCgtudW1fcmVzdWx0cxgDIAEoBRIUCgx0b29sX2NhbGxfaWQYBCABKAkipgEKD0V4YVNlYXJjaFJlc3VsdBItCgdzdWNjZXNzGAEgASgLMhouYWdlbnQudjEuRXhhU2VhcmNoU3VjY2Vzc0gAEikKBWVycm9yGAIgASgLMhguYWdlbnQudjEuRXhhU2VhcmNoRXJyb3JIABIvCghyZWplY3RlZBgDIAEoCzIbLmFnZW50LnYxLkV4YVNlYXJjaFJlamVjdGVkSABCCAoGcmVzdWx0IkQKEEV4YVNlYXJjaFN1Y2Nlc3MSMAoKcmVmZXJlbmNlcxgBIAMoCzIcLmFnZW50LnYxLkV4YVNlYXJjaFJlZmVyZW5jZSIfCg5FeGFTZWFyY2hFcnJvchINCgVlcnJvchgBIAEoCSIjChFFeGFTZWFyY2hSZWplY3RlZBIOCgZyZWFzb24YASABKAkiVgoSRXhhU2VhcmNoUmVmZXJlbmNlEg0KBXRpdGxlGAEgASgJEgsKA3VybBgCIAEoCRIMCgR0ZXh0GAMgASgJEhYKDnB1Ymxpc2hlZF9kYXRlGAQgASgJImUKEUV4YVNlYXJjaFRvb2xDYWxsEiUKBGFyZ3MYASABKAsyFy5hZ2VudC52MS5FeGFTZWFyY2hBcmdzEikKBnJlc3VsdBgCIAEoCzIZLmFnZW50LnYxLkV4YVNlYXJjaFJlc3VsdCI+ChVFeGFTZWFyY2hSZXF1ZXN0UXVlcnkSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLkV4YVNlYXJjaEFyZ3MipgEKGEV4YVNlYXJjaFJlcXVlc3RSZXNwb25zZRI/CghhcHByb3ZlZBgBIAEoCzIrLmFnZW50LnYxLkV4YVNlYXJjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZEgAEj8KCHJlamVjdGVkGAIgASgLMisuYWdlbnQudjEuRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlX1JlamVjdGVkSABCCAoGcmVzdWx0IiMKIUV4YVNlYXJjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZCIzCiFFeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIiMKFUV4ZWNDbGllbnRTdHJlYW1DbG9zZRIKCgJpZBgBIAEoDSJWCg9FeGVjQ2xpZW50VGhyb3cSCgoCaWQYASABKA0SDQoFZXJyb3IYAiABKAkSGAoLc3RhY2tfdHJhY2UYAyABKAlIAIgBAUIOCgxfc3RhY2tfdHJhY2UiIQoTRXhlY0NsaWVudEhlYXJ0YmVhdBIKCgJpZBgBIAEoDSK+AQoYRXhlY0NsaWVudENvbnRyb2xNZXNzYWdlEjcKDHN0cmVhbV9jbG9zZRgBIAEoCzIfLmFnZW50LnYxLkV4ZWNDbGllbnRTdHJlYW1DbG9zZUgAEioKBXRocm93GAIgASgLMhkuYWdlbnQudjEuRXhlY0NsaWVudFRocm93SAASMgoJaGVhcnRiZWF0GAMgASgLMh0uYWdlbnQudjEuRXhlY0NsaWVudEhlYXJ0YmVhdEgAQgkKB21lc3NhZ2UihAEKC1NwYW5Db250ZXh0EhAKCHRyYWNlX2lkGAEgASgJEg8KB3NwYW5faWQYAiABKAkSGAoLdHJhY2VfZmxhZ3MYAyABKA1IAIgBARIYCgt0cmFjZV9zdGF0ZRgEIAEoCUgBiAEBQg4KDF90cmFjZV9mbGFnc0IOCgxfdHJhY2Vfc3RhdGUiCwoJQWJvcnRBcmdzIg0KC0Fib3J0UmVzdWx0IoUIChFFeGVjU2VydmVyTWVzc2FnZRIKCgJpZBgBIAEoDRIPCgdleGVjX2lkGA8gASgJEjAKDHNwYW5fY29udGV4dBgTIAEoCzIVLmFnZW50LnYxLlNwYW5Db250ZXh0SAGIAQESKQoKc2hlbGxfYXJncxgCIAEoCzITLmFnZW50LnYxLlNoZWxsQXJnc0gAEikKCndyaXRlX2FyZ3MYAyABKAsyEy5hZ2VudC52MS5Xcml0ZUFyZ3NIABIrCgtkZWxldGVfYXJncxgEIAEoCzIULmFnZW50LnYxLkRlbGV0ZUFyZ3NIABInCglncmVwX2FyZ3MYBSABKAsyEi5hZ2VudC52MS5HcmVwQXJnc0gAEicKCXJlYWRfYXJncxgHIAEoCzISLmFnZW50LnYxLlJlYWRBcmdzSAASIwoHbHNfYXJncxgIIAEoCzIQLmFnZW50LnYxLkxzQXJnc0gAEjUKEGRpYWdub3N0aWNzX2FyZ3MYCSABKAsyGS5hZ2VudC52MS5EaWFnbm9zdGljc0FyZ3NIABI8ChRyZXF1ZXN0X2NvbnRleHRfYXJncxgKIAEoCzIcLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0QXJnc0gAEiUKCG1jcF9hcmdzGAsgASgLMhEuYWdlbnQudjEuTWNwQXJnc0gAEjAKEXNoZWxsX3N0cmVhbV9hcmdzGA4gASgLMhMuYWdlbnQudjEuU2hlbGxBcmdzSAASSQobYmFja2dyb3VuZF9zaGVsbF9zcGF3bl9hcmdzGBAgASgLMiIuYWdlbnQudjEuQmFja2dyb3VuZFNoZWxsU3Bhd25BcmdzSAASSgocbGlzdF9tY3BfcmVzb3VyY2VzX2V4ZWNfYXJncxgRIAEoCzIiLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFeGVjQXJnc0gAEkgKG3JlYWRfbWNwX3Jlc291cmNlX2V4ZWNfYXJncxgSIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzSAASKQoKZmV0Y2hfYXJncxgUIAEoCzITLmFnZW50LnYxLkZldGNoQXJnc0gAEjgKEnJlY29yZF9zY3JlZW5fYXJncxgVIAEoCzIaLmFnZW50LnYxLlJlY29yZFNjcmVlbkFyZ3NIABI2ChFjb21wdXRlcl91c2VfYXJncxgWIAEoCzIZLmFnZW50LnYxLkNvbXB1dGVyVXNlQXJnc0gAEj8KFndyaXRlX3NoZWxsX3N0ZGluX2FyZ3MYFyABKAsyHS5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5BcmdzSABCCQoHbWVzc2FnZUIPCg1fc3Bhbl9jb250ZXh0Iv8HChFFeGVjQ2xpZW50TWVzc2FnZRIKCgJpZBgBIAEoDRIPCgdleGVjX2lkGA8gASgJEi0KDHNoZWxsX3Jlc3VsdBgCIAEoCzIVLmFnZW50LnYxLlNoZWxsUmVzdWx0SAASLQoMd3JpdGVfcmVzdWx0GAMgASgLMhUuYWdlbnQudjEuV3JpdGVSZXN1bHRIABIvCg1kZWxldGVfcmVzdWx0GAQgASgLMhYuYWdlbnQudjEuRGVsZXRlUmVzdWx0SAASKwoLZ3JlcF9yZXN1bHQYBSABKAsyFC5hZ2VudC52MS5HcmVwUmVzdWx0SAASKwoLcmVhZF9yZXN1bHQYByABKAsyFC5hZ2VudC52MS5SZWFkUmVzdWx0SAASJwoJbHNfcmVzdWx0GAggASgLMhIuYWdlbnQudjEuTHNSZXN1bHRIABI5ChJkaWFnbm9zdGljc19yZXN1bHQYCSABKAsyGy5hZ2VudC52MS5EaWFnbm9zdGljc1Jlc3VsdEgAEkAKFnJlcXVlc3RfY29udGV4dF9yZXN1bHQYCiABKAsyHi5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dFJlc3VsdEgAEikKCm1jcF9yZXN1bHQYCyABKAsyEy5hZ2VudC52MS5NY3BSZXN1bHRIABItCgxzaGVsbF9zdHJlYW0YDiABKAsyFS5hZ2VudC52MS5TaGVsbFN0cmVhbUgAEk0KHWJhY2tncm91bmRfc2hlbGxfc3Bhd25fcmVzdWx0GBAgASgLMiQuYWdlbnQudjEuQmFja2dyb3VuZFNoZWxsU3Bhd25SZXN1bHRIABJOCh5saXN0X21jcF9yZXNvdXJjZXNfZXhlY19yZXN1bHQYESABKAsyJC5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY1Jlc3VsdEgAEkwKHXJlYWRfbWNwX3Jlc291cmNlX2V4ZWNfcmVzdWx0GBIgASgLMiMuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlRXhlY1Jlc3VsdEgAEi0KDGZldGNoX3Jlc3VsdBgUIAEoCzIVLmFnZW50LnYxLkZldGNoUmVzdWx0SAASPAoUcmVjb3JkX3NjcmVlbl9yZXN1bHQYFSABKAsyHC5hZ2VudC52MS5SZWNvcmRTY3JlZW5SZXN1bHRIABI6ChNjb21wdXRlcl91c2VfcmVzdWx0GBYgASgLMhsuYWdlbnQudjEuQ29tcHV0ZXJVc2VSZXN1bHRIABJDChh3cml0ZV9zaGVsbF9zdGRpbl9yZXN1bHQYFyABKAsyHy5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5SZXN1bHRIAEIJCgdtZXNzYWdlIi4KCUZldGNoQXJncxILCgN1cmwYASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJImkKC0ZldGNoUmVzdWx0EikKB3N1Y2Nlc3MYASABKAsyFi5hZ2VudC52MS5GZXRjaFN1Y2Nlc3NIABIlCgVlcnJvchgCIAEoCzIULmFnZW50LnYxLkZldGNoRXJyb3JIAEIICgZyZXN1bHQiVwoMRmV0Y2hTdWNjZXNzEgsKA3VybBgBIAEoCRIPCgdjb250ZW50GAIgASgJEhMKC3N0YXR1c19jb2RlGAMgASgFEhQKDGNvbnRlbnRfdHlwZRgEIAEoCSIoCgpGZXRjaEVycm9yEgsKA3VybBgBIAEoCRINCgVlcnJvchgCIAEoCSJtChFHZW5lcmF0ZUltYWdlQXJncxITCgtkZXNjcmlwdGlvbhgBIAEoCRIWCglmaWxlX3BhdGgYAiABKAlIAIgBARIdChVyZWZlcmVuY2VfaW1hZ2VfcGF0aHMYBSADKAlCDAoKX2ZpbGVfcGF0aCKBAQoTR2VuZXJhdGVJbWFnZVJlc3VsdBIxCgdzdWNjZXNzGAEgASgLMh4uYWdlbnQudjEuR2VuZXJhdGVJbWFnZVN1Y2Nlc3NIABItCgVlcnJvchgCIAEoCzIcLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VFcnJvckgAQggKBnJlc3VsdCI9ChRHZW5lcmF0ZUltYWdlU3VjY2VzcxIRCglmaWxlX3BhdGgYASABKAkSEgoKaW1hZ2VfZGF0YRgCIAEoCSIjChJHZW5lcmF0ZUltYWdlRXJyb3ISDQoFZXJyb3IYASABKAkicQoVR2VuZXJhdGVJbWFnZVRvb2xDYWxsEikKBGFyZ3MYASABKAsyGy5hZ2VudC52MS5HZW5lcmF0ZUltYWdlQXJncxItCgZyZXN1bHQYAiABKAsyHS5hZ2VudC52MS5HZW5lcmF0ZUltYWdlUmVzdWx0IsYECghHcmVwQXJncxIPCgdwYXR0ZXJuGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARIRCgRnbG9iGAMgASgJSAGIAQESGAoLb3V0cHV0X21vZGUYBCABKAlIAogBARIbCg5jb250ZXh0X2JlZm9yZRgFIAEoBUgDiAEBEhoKDWNvbnRleHRfYWZ0ZXIYBiABKAVIBIgBARIUCgdjb250ZXh0GAcgASgFSAWIAQESHQoQY2FzZV9pbnNlbnNpdGl2ZRgIIAEoCEgGiAEBEhEKBHR5cGUYCSABKAlIB4gBARIXCgpoZWFkX2xpbWl0GAogASgFSAiIAQESFgoJbXVsdGlsaW5lGAsgASgISAmIAQESEQoEc29ydBgMIAEoCUgKiAEBEhsKDnNvcnRfYXNjZW5kaW5nGA0gASgISAuIAQESFAoMdG9vbF9jYWxsX2lkGA4gASgJEjQKDnNhbmRib3hfcG9saWN5GA8gASgLMhcuYWdlbnQudjEuU2FuZGJveFBvbGljeUgMiAEBQgcKBV9wYXRoQgcKBV9nbG9iQg4KDF9vdXRwdXRfbW9kZUIRCg9fY29udGV4dF9iZWZvcmVCEAoOX2NvbnRleHRfYWZ0ZXJCCgoIX2NvbnRleHRCEwoRX2Nhc2VfaW5zZW5zaXRpdmVCBwoFX3R5cGVCDQoLX2hlYWRfbGltaXRCDAoKX211bHRpbGluZUIHCgVfc29ydEIRCg9fc29ydF9hc2NlbmRpbmdCEQoPX3NhbmRib3hfcG9saWN5ImYKCkdyZXBSZXN1bHQSKAoHc3VjY2VzcxgBIAEoCzIVLmFnZW50LnYxLkdyZXBTdWNjZXNzSAASJAoFZXJyb3IYAiABKAsyEy5hZ2VudC52MS5HcmVwRXJyb3JIAEIICgZyZXN1bHQiGgoJR3JlcEVycm9yEg0KBWVycm9yGAEgASgJIrQCCgtHcmVwU3VjY2VzcxIPCgdwYXR0ZXJuGAEgASgJEgwKBHBhdGgYAiABKAkSEwoLb3V0cHV0X21vZGUYAyABKAkSRgoRd29ya3NwYWNlX3Jlc3VsdHMYBCADKAsyKy5hZ2VudC52MS5HcmVwU3VjY2Vzcy5Xb3Jrc3BhY2VSZXN1bHRzRW50cnkSPAoUYWN0aXZlX2VkaXRvcl9yZXN1bHQYBSABKAsyGS5hZ2VudC52MS5HcmVwVW5pb25SZXN1bHRIAIgBARpSChVXb3Jrc3BhY2VSZXN1bHRzRW50cnkSCwoDa2V5GAEgASgJEigKBXZhbHVlGAIgASgLMhkuYWdlbnQudjEuR3JlcFVuaW9uUmVzdWx0OgI4AUIXChVfYWN0aXZlX2VkaXRvcl9yZXN1bHQiowEKD0dyZXBVbmlvblJlc3VsdBIqCgVjb3VudBgBIAEoCzIZLmFnZW50LnYxLkdyZXBDb3VudFJlc3VsdEgAEioKBWZpbGVzGAIgASgLMhkuYWdlbnQudjEuR3JlcEZpbGVzUmVzdWx0SAASLgoHY29udGVudBgDIAEoCzIbLmFnZW50LnYxLkdyZXBDb250ZW50UmVzdWx0SABCCAoGcmVzdWx0IpsBCg9HcmVwQ291bnRSZXN1bHQSJwoGY291bnRzGAEgAygLMhcuYWdlbnQudjEuR3JlcEZpbGVDb3VudBITCgt0b3RhbF9maWxlcxgCIAEoBRIVCg10b3RhbF9tYXRjaGVzGAMgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBCABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBSABKAgiLAoNR3JlcEZpbGVDb3VudBIMCgRmaWxlGAEgASgJEg0KBWNvdW50GAIgASgFImoKD0dyZXBGaWxlc1Jlc3VsdBINCgVmaWxlcxgBIAMoCRITCgt0b3RhbF9maWxlcxgCIAEoBRIYChBjbGllbnRfdHJ1bmNhdGVkGAMgASgIEhkKEXJpcGdyZXBfdHJ1bmNhdGVkGAQgASgIIqQBChFHcmVwQ29udGVudFJlc3VsdBIoCgdtYXRjaGVzGAEgAygLMhcuYWdlbnQudjEuR3JlcEZpbGVNYXRjaBITCgt0b3RhbF9saW5lcxgCIAEoBRIbChN0b3RhbF9tYXRjaGVkX2xpbmVzGAMgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBCABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBSABKAgiSgoNR3JlcEZpbGVNYXRjaBIMCgRmaWxlGAEgASgJEisKB21hdGNoZXMYAiADKAsyGi5hZ2VudC52MS5HcmVwQ29udGVudE1hdGNoImwKEEdyZXBDb250ZW50TWF0Y2gSEwoLbGluZV9udW1iZXIYASABKAUSDwoHY29udGVudBgCIAEoCRIZChFjb250ZW50X3RydW5jYXRlZBgDIAEoCBIXCg9pc19jb250ZXh0X2xpbmUYBCABKAgiHQoKR3JlcFN0cmVhbRIPCgdwYXR0ZXJuGAEgASgJIlYKDEdyZXBUb29sQ2FsbBIgCgRhcmdzGAEgASgLMhIuYWdlbnQudjEuR3JlcEFyZ3MSJAoGcmVzdWx0GAIgASgLMhQuYWdlbnQudjEuR3JlcFJlc3VsdCIeCgtHZXRCbG9iQXJncxIPCgdibG9iX2lkGAEgASgMIjUKDUdldEJsb2JSZXN1bHQSFgoJYmxvYl9kYXRhGAEgASgMSACIAQFCDAoKX2Jsb2JfZGF0YSIxCgtTZXRCbG9iQXJncxIPCgdibG9iX2lkGAEgASgMEhEKCWJsb2JfZGF0YRgCIAEoDCI+Cg1TZXRCbG9iUmVzdWx0EiMKBWVycm9yGAEgASgLMg8uYWdlbnQudjEuRXJyb3JIAIgBAUIICgZfZXJyb3IiywEKD0t2U2VydmVyTWVzc2FnZRIKCgJpZBgBIAEoDRIwCgxzcGFuX2NvbnRleHQYBCABKAsyFS5hZ2VudC52MS5TcGFuQ29udGV4dEgBiAEBEi4KDWdldF9ibG9iX2FyZ3MYAiABKAsyFS5hZ2VudC52MS5HZXRCbG9iQXJnc0gAEi4KDXNldF9ibG9iX2FyZ3MYAyABKAsyFS5hZ2VudC52MS5TZXRCbG9iQXJnc0gAQgkKB21lc3NhZ2VCDwoNX3NwYW5fY29udGV4dCKQAQoPS3ZDbGllbnRNZXNzYWdlEgoKAmlkGAEgASgNEjIKD2dldF9ibG9iX3Jlc3VsdBgCIAEoCzIXLmFnZW50LnYxLkdldEJsb2JSZXN1bHRIABIyCg9zZXRfYmxvYl9yZXN1bHQYAyABKAsyFy5hZ2VudC52MS5TZXRCbG9iUmVzdWx0SABCCQoHbWVzc2FnZSKtAQoGTHNBcmdzEgwKBHBhdGgYASABKAkSDgoGaWdub3JlGAIgAygJEhQKDHRvb2xfY2FsbF9pZBgDIAEoCRI0Cg5zYW5kYm94X3BvbGljeRgEIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIAIgBARIXCgp0aW1lb3V0X21zGAUgASgNSAGIAQFCEQoPX3NhbmRib3hfcG9saWN5Qg0KC190aW1lb3V0X21zIrIBCghMc1Jlc3VsdBImCgdzdWNjZXNzGAEgASgLMhMuYWdlbnQudjEuTHNTdWNjZXNzSAASIgoFZXJyb3IYAiABKAsyES5hZ2VudC52MS5Mc0Vycm9ySAASKAoIcmVqZWN0ZWQYAyABKAsyFC5hZ2VudC52MS5Mc1JlamVjdGVkSAASJgoHdGltZW91dBgEIAEoCzITLmFnZW50LnYxLkxzVGltZW91dEgAQggKBnJlc3VsdCJHCglMc1N1Y2Nlc3MSOgoTZGlyZWN0b3J5X3RyZWVfcm9vdBgBIAEoCzIdLmFnZW50LnYxLkxzRGlyZWN0b3J5VHJlZU5vZGUi9gIKE0xzRGlyZWN0b3J5VHJlZU5vZGUSEAoIYWJzX3BhdGgYASABKAkSNAoNY2hpbGRyZW5fZGlycxgCIAMoCzIdLmFnZW50LnYxLkxzRGlyZWN0b3J5VHJlZU5vZGUSOgoOY2hpbGRyZW5fZmlsZXMYAyADKAsyIi5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlX0ZpbGUSHwoXY2hpbGRyZW5fd2VyZV9wcm9jZXNzZWQYBCABKAgSZAodZnVsbF9zdWJ0cmVlX2V4dGVuc2lvbl9jb3VudHMYBSADKAsyPS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlLkZ1bGxTdWJ0cmVlRXh0ZW5zaW9uQ291bnRzRW50cnkSEQoJbnVtX2ZpbGVzGAYgASgFGkEKH0Z1bGxTdWJ0cmVlRXh0ZW5zaW9uQ291bnRzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASJ6ChhMc0RpcmVjdG9yeVRyZWVOb2RlX0ZpbGUSDAoEbmFtZRgBIAEoCRI6ChF0ZXJtaW5hbF9tZXRhZGF0YRgCIAEoCzIaLmFnZW50LnYxLlRlcm1pbmFsTWV0YWRhdGFIAIgBAUIUChJfdGVybWluYWxfbWV0YWRhdGEiJgoHTHNFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIioKCkxzUmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiRwoJTHNUaW1lb3V0EjoKE2RpcmVjdG9yeV90cmVlX3Jvb3QYASABKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlIvEBChBUZXJtaW5hbE1ldGFkYXRhEhAKA2N3ZBgBIAEoCUgAiAEBEjkKDWxhc3RfY29tbWFuZHMYAiADKAsyIi5hZ2VudC52MS5UZXJtaW5hbE1ldGFkYXRhX0NvbW1hbmQSHQoQbGFzdF9tb2RpZmllZF9tcxgDIAEoA0gBiAEBEkAKD2N1cnJlbnRfY29tbWFuZBgEIAEoCzIiLmFnZW50LnYxLlRlcm1pbmFsTWV0YWRhdGFfQ29tbWFuZEgCiAEBQgYKBF9jd2RCEwoRX2xhc3RfbW9kaWZpZWRfbXNCEgoQX2N1cnJlbnRfY29tbWFuZCKnAQoYVGVybWluYWxNZXRhZGF0YV9Db21tYW5kEg8KB2NvbW1hbmQYASABKAkSFgoJZXhpdF9jb2RlGAIgASgFSACIAQESGQoMdGltZXN0YW1wX21zGAMgASgDSAGIAQESGAoLZHVyYXRpb25fbXMYBCABKANIAogBAUIMCgpfZXhpdF9jb2RlQg8KDV90aW1lc3RhbXBfbXNCDgoMX2R1cmF0aW9uX21zIlAKCkxzVG9vbENhbGwSHgoEYXJncxgBIAEoCzIQLmFnZW50LnYxLkxzQXJncxIiCgZyZXN1bHQYAiABKAsyEi5hZ2VudC52MS5Mc1Jlc3VsdCK1AQoHTWNwQXJncxIMCgRuYW1lGAEgASgJEikKBGFyZ3MYAiADKAsyGy5hZ2VudC52MS5NY3BBcmdzLkFyZ3NFbnRyeRIUCgx0b29sX2NhbGxfaWQYAyABKAkSGwoTcHJvdmlkZXJfaWRlbnRpZmllchgEIAEoCRIRCgl0b29sX25hbWUYBSABKAkaKwoJQXJnc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAEi/wEKCU1jcFJlc3VsdBInCgdzdWNjZXNzGAEgASgLMhQuYWdlbnQudjEuTWNwU3VjY2Vzc0gAEiMKBWVycm9yGAIgASgLMhIuYWdlbnQudjEuTWNwRXJyb3JIABIpCghyZWplY3RlZBgDIAEoCzIVLmFnZW50LnYxLk1jcFJlamVjdGVkSAASOgoRcGVybWlzc2lvbl9kZW5pZWQYBCABKAsyHS5hZ2VudC52MS5NY3BQZXJtaXNzaW9uRGVuaWVkSAASMwoOdG9vbF9ub3RfZm91bmQYBSABKAsyGS5hZ2VudC52MS5NY3BUb29sTm90Rm91bmRIAEIICgZyZXN1bHQiOAoPTWNwVG9vbE5vdEZvdW5kEgwKBG5hbWUYASABKAkSFwoPYXZhaWxhYmxlX3Rvb2xzGAIgAygJImoKDk1jcFRleHRDb250ZW50EgwKBHRleHQYASABKAkSNgoPb3V0cHV0X2xvY2F0aW9uGAIgASgLMhguYWdlbnQudjEuT3V0cHV0TG9jYXRpb25IAIgBAUISChBfb3V0cHV0X2xvY2F0aW9uIjIKD01jcEltYWdlQ29udGVudBIMCgRkYXRhGAEgASgMEhEKCW1pbWVfdHlwZRgCIAEoCSJ7ChhNY3BUb29sUmVzdWx0Q29udGVudEl0ZW0SKAoEdGV4dBgBIAEoCzIYLmFnZW50LnYxLk1jcFRleHRDb250ZW50SAASKgoFaW1hZ2UYAiABKAsyGS5hZ2VudC52MS5NY3BJbWFnZUNvbnRlbnRIAEIJCgdjb250ZW50IlMKCk1jcFN1Y2Nlc3MSMwoHY29udGVudBgBIAMoCzIiLmFnZW50LnYxLk1jcFRvb2xSZXN1bHRDb250ZW50SXRlbRIQCghpc19lcnJvchgCIAEoCCIZCghNY3BFcnJvchINCgVlcnJvchgBIAEoCSIyCgtNY3BSZWplY3RlZBIOCgZyZWFzb24YASABKAkSEwoLaXNfcmVhZG9ubHkYAiABKAgiOQoTTWNwUGVybWlzc2lvbkRlbmllZBINCgVlcnJvchgBIAEoCRITCgtpc19yZWFkb25seRgCIAEoCCI6ChhMaXN0TWNwUmVzb3VyY2VzRXhlY0FyZ3MSEwoGc2VydmVyGAEgASgJSACIAQFCCQoHX3NlcnZlciLGAQoaTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHQSNAoHc3VjY2VzcxgBIAEoCzIhLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNTdWNjZXNzSAASMAoFZXJyb3IYAiABKAsyHy5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXJyb3JIABI2CghyZWplY3RlZBgDIAEoCzIiLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNSZWplY3RlZEgAQggKBnJlc3VsdCK9AgomTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHRfTWNwUmVzb3VyY2USCwoDdXJpGAEgASgJEhEKBG5hbWUYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEhYKCW1pbWVfdHlwZRgEIAEoCUgCiAEBEg4KBnNlcnZlchgFIAEoCRJWCgthbm5vdGF0aW9ucxgGIAMoCzJBLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFeGVjUmVzdWx0X01jcFJlc291cmNlLkFubm90YXRpb25zRW50cnkaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgcKBV9uYW1lQg4KDF9kZXNjcmlwdGlvbkIMCgpfbWltZV90eXBlIl4KF0xpc3RNY3BSZXNvdXJjZXNTdWNjZXNzEkMKCXJlc291cmNlcxgBIAMoCzIwLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFeGVjUmVzdWx0X01jcFJlc291cmNlIiYKFUxpc3RNY3BSZXNvdXJjZXNFcnJvchINCgVlcnJvchgBIAEoCSIqChhMaXN0TWNwUmVzb3VyY2VzUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJImQKF1JlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzEg4KBnNlcnZlchgBIAEoCRILCgN1cmkYAiABKAkSGgoNZG93bmxvYWRfcGF0aBgDIAEoCUgAiAEBQhAKDl9kb3dubG9hZF9wYXRoIvoBChlSZWFkTWNwUmVzb3VyY2VFeGVjUmVzdWx0EjMKB3N1Y2Nlc3MYASABKAsyIC5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VTdWNjZXNzSAASLwoFZXJyb3IYAiABKAsyHi5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VFcnJvckgAEjUKCHJlamVjdGVkGAMgASgLMiEuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlUmVqZWN0ZWRIABI2Cglub3RfZm91bmQYBCABKAsyIS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VOb3RGb3VuZEgAQggKBnJlc3VsdCLmAgoWUmVhZE1jcFJlc291cmNlU3VjY2VzcxILCgN1cmkYASABKAkSEQoEbmFtZRgCIAEoCUgBiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAKIAQESFgoJbWltZV90eXBlGAQgASgJSAOIAQESRgoLYW5ub3RhdGlvbnMYByADKAsyMS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VTdWNjZXNzLkFubm90YXRpb25zRW50cnkSGgoNZG93bmxvYWRfcGF0aBgIIAEoCUgEiAEBEg4KBHRleHQYBSABKAlIABIOCgRibG9iGAYgASgMSAAaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgkKB2NvbnRlbnRCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9taW1lX3R5cGVCEAoOX2Rvd25sb2FkX3BhdGgiMgoUUmVhZE1jcFJlc291cmNlRXJyb3ISCwoDdXJpGAEgASgJEg0KBWVycm9yGAIgASgJIjYKF1JlYWRNY3BSZXNvdXJjZVJlamVjdGVkEgsKA3VyaRgBIAEoCRIOCgZyZWFzb24YAiABKAkiJgoXUmVhZE1jcFJlc291cmNlTm90Rm91bmQSCwoDdXJpGAEgASgJInwKEU1jcFRvb2xEZWZpbml0aW9uEgwKBG5hbWUYASABKAkSGwoTcHJvdmlkZXJfaWRlbnRpZmllchgEIAEoCRIRCgl0b29sX25hbWUYBSABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSFAoMaW5wdXRfc2NoZW1hGAMgASgMIjoKCE1jcFRvb2xzEi4KCW1jcF90b29scxgBIAMoCzIbLmFnZW50LnYxLk1jcFRvb2xEZWZpbml0aW9uIjwKD01jcEluc3RydWN0aW9ucxITCgtzZXJ2ZXJfbmFtZRgBIAEoCRIUCgxpbnN0cnVjdGlvbnMYAiABKAki1wEKDU1jcERlc2NyaXB0b3ISEwoLc2VydmVyX25hbWUYASABKAkSGQoRc2VydmVyX2lkZW50aWZpZXIYAiABKAkSGAoLZm9sZGVyX3BhdGgYAyABKAlIAIgBARIkChdzZXJ2ZXJfdXNlX2luc3RydWN0aW9ucxgEIAEoCUgBiAEBEioKBXRvb2xzGAUgAygLMhsuYWdlbnQudjEuTWNwVG9vbERlc2NyaXB0b3JCDgoMX2ZvbGRlcl9wYXRoQhoKGF9zZXJ2ZXJfdXNlX2luc3RydWN0aW9ucyJYChFNY3BUb29sRGVzY3JpcHRvchIRCgl0b29sX25hbWUYASABKAkSHAoPZGVmaW5pdGlvbl9wYXRoGAIgASgJSACIAQFCEgoQX2RlZmluaXRpb25fcGF0aCJ4ChRNY3BGaWxlU3lzdGVtT3B0aW9ucxIPCgdlbmFibGVkGAEgASgIEh0KFXdvcmtzcGFjZV9wcm9qZWN0X2RpchgCIAEoCRIwCg9tY3BfZGVzY3JpcHRvcnMYAyADKAsyFy5hZ2VudC52MS5NY3BEZXNjcmlwdG9yIi4KCFJlYWRBcmdzEgwKBHBhdGgYASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIrgCCgpSZWFkUmVzdWx0EigKB3N1Y2Nlc3MYASABKAsyFS5hZ2VudC52MS5SZWFkU3VjY2Vzc0gAEiQKBWVycm9yGAIgASgLMhMuYWdlbnQudjEuUmVhZEVycm9ySAASKgoIcmVqZWN0ZWQYAyABKAsyFi5hZ2VudC52MS5SZWFkUmVqZWN0ZWRIABI0Cg5maWxlX25vdF9mb3VuZBgEIAEoCzIaLmFnZW50LnYxLlJlYWRGaWxlTm90Rm91bmRIABI7ChFwZXJtaXNzaW9uX2RlbmllZBgFIAEoCzIeLmFnZW50LnYxLlJlYWRQZXJtaXNzaW9uRGVuaWVkSAASMQoMaW52YWxpZF9maWxlGAYgASgLMhkuYWdlbnQudjEuUmVhZEludmFsaWRGaWxlSABCCAoGcmVzdWx0IrMBCgtSZWFkU3VjY2VzcxIMCgRwYXRoGAEgASgJEhMKC3RvdGFsX2xpbmVzGAMgASgFEhEKCWZpbGVfc2l6ZRgEIAEoAxIRCgl0cnVuY2F0ZWQYBiABKAgSGwoOb3V0cHV0X2Jsb2JfaWQYByABKAxIAYgBARIRCgdjb250ZW50GAIgASgJSAASDgoEZGF0YRgFIAEoDEgAQggKBm91dHB1dEIRCg9fb3V0cHV0X2Jsb2JfaWQiKAoJUmVhZEVycm9yEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkiLAoMUmVhZFJlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIiAKEFJlYWRGaWxlTm90Rm91bmQSDAoEcGF0aBgBIAEoCSIkChRSZWFkUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJIi8KD1JlYWRJbnZhbGlkRmlsZRIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJeCgxSZWFkVG9vbENhbGwSJAoEYXJncxgBIAEoCzIWLmFnZW50LnYxLlJlYWRUb29sQXJncxIoCgZyZXN1bHQYAiABKAsyGC5hZ2VudC52MS5SZWFkVG9vbFJlc3VsdCJaCgxSZWFkVG9vbEFyZ3MSDAoEcGF0aBgBIAEoCRITCgZvZmZzZXQYAiABKAVIAIgBARISCgVsaW1pdBgDIAEoBUgBiAEBQgkKB19vZmZzZXRCCAoGX2xpbWl0InIKDlJlYWRUb29sUmVzdWx0EiwKB3N1Y2Nlc3MYASABKAsyGS5hZ2VudC52MS5SZWFkVG9vbFN1Y2Nlc3NIABIoCgVlcnJvchgCIAEoCzIXLmFnZW50LnYxLlJlYWRUb29sRXJyb3JIAEIICgZyZXN1bHQiMQoJUmVhZFJhbmdlEhIKCnN0YXJ0X2xpbmUYASABKA0SEAoIZW5kX2xpbmUYAiABKA0ijgIKD1JlYWRUb29sU3VjY2VzcxIQCghpc19lbXB0eRgCIAEoCBIWCg5leGNlZWRlZF9saW1pdBgDIAEoCBITCgt0b3RhbF9saW5lcxgEIAEoDRIRCglmaWxlX3NpemUYBSABKA0SDAoEcGF0aBgHIAEoCRIsCgpyZWFkX3JhbmdlGAggASgLMhMuYWdlbnQudjEuUmVhZFJhbmdlSAGIAQESEQoHY29udGVudBgBIAEoCUgAEg4KBGRhdGEYBiABKAxIABIWCgxkYXRhX2Jsb2JfaWQYCSABKAxIABIZCg9jb250ZW50X2Jsb2JfaWQYCiABKAxIAEIICgZvdXRwdXRCDQoLX3JlYWRfcmFuZ2UiJgoNUmVhZFRvb2xFcnJvchIVCg1lcnJvcl9tZXNzYWdlGAEgASgJImoKEFJlY29yZFNjcmVlbkFyZ3MSDAoEbW9kZRgBIAEoBRIUCgx0b29sX2NhbGxfaWQYAiABKAkSHQoQc2F2ZV9hc19maWxlbmFtZRgDIAEoCUgAiAEBQhMKEV9zYXZlX2FzX2ZpbGVuYW1lIokCChJSZWNvcmRTY3JlZW5SZXN1bHQSOwoNc3RhcnRfc3VjY2VzcxgBIAEoCzIiLmFnZW50LnYxLlJlY29yZFNjcmVlblN0YXJ0U3VjY2Vzc0gAEjkKDHNhdmVfc3VjY2VzcxgCIAEoCzIhLmFnZW50LnYxLlJlY29yZFNjcmVlblNhdmVTdWNjZXNzSAASPwoPZGlzY2FyZF9zdWNjZXNzGAMgASgLMiQuYWdlbnQudjEuUmVjb3JkU2NyZWVuRGlzY2FyZFN1Y2Nlc3NIABIwCgdmYWlsdXJlGAQgASgLMh0uYWdlbnQudjEuUmVjb3JkU2NyZWVuRmFpbHVyZUgAQggKBnJlc3VsdCJnChhSZWNvcmRTY3JlZW5TdGFydFN1Y2Nlc3MSJQodd2FzX3ByaW9yX3JlY29yZGluZ19jYW5jZWxsZWQYASABKAgSJAocd2FzX3NhdmVfYXNfZmlsZW5hbWVfaWdub3JlZBgCIAEoCCKgAQoXUmVjb3JkU2NyZWVuU2F2ZVN1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIdChVyZWNvcmRpbmdfZHVyYXRpb25fbXMYAiABKAMSMAojcmVxdWVzdGVkX2ZpbGVfcGF0aF9yZWplY3RlZF9yZWFzb24YAyABKAVIAIgBAUImCiRfcmVxdWVzdGVkX2ZpbGVfcGF0aF9yZWplY3RlZF9yZWFzb24iHAoaUmVjb3JkU2NyZWVuRGlzY2FyZFN1Y2Nlc3MiJAoTUmVjb3JkU2NyZWVuRmFpbHVyZRINCgVlcnJvchgBIAEoCSI2ChNDdXJzb3JQYWNrYWdlUHJvbXB0EgwKBG5hbWUYASABKAkSEQoJZmlsZV9wYXRoGAIgASgJIuIBCg1DdXJzb3JQYWNrYWdlEgwKBG5hbWUYASABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSEwoLZm9sZGVyX3BhdGgYAyABKAkSDwoHZW5hYmxlZBgEIAEoCBIYCgtwYXJzZV9lcnJvchgFIAEoCUgAiAEBEi4KB3Byb21wdHMYBiADKAsyHS5hZ2VudC52MS5DdXJzb3JQYWNrYWdlUHJvbXB0EhgKEHJlYWRtZV9maWxlX3BhdGgYByABKAkSFAoMcGFja2FnZV90eXBlGAggASgFQg4KDF9wYXJzZV9lcnJvciKrAgoWUmVwb3NpdG9yeUluZGV4aW5nSW5mbxIfChdyZWxhdGl2ZV93b3Jrc3BhY2VfcGF0aBgBIAEoCRITCgtyZW1vdGVfdXJscxgCIAMoCRIUCgxyZW1vdGVfbmFtZXMYAyADKAkSEQoJcmVwb19uYW1lGAQgASgJEhIKCnJlcG9fb3duZXIYBSABKAkSEgoKaXNfdHJhY2tlZBgGIAEoCBIQCghpc19sb2NhbBgHIAEoCBImChlvcnRob2dvbmFsX3RyYW5zZm9ybV9zZWVkGAggASgBSACIAQESFQoNd29ya3NwYWNlX3VyaRgJIAEoCRIbChNwYXRoX2VuY3J5cHRpb25fa2V5GAogASgJQhwKGl9vcnRob2dvbmFsX3RyYW5zZm9ybV9zZWVkInQKElJlcXVlc3RDb250ZXh0QXJncxIdChBub3Rlc19zZXNzaW9uX2lkGAIgASgJSACIAQESGQoMd29ya3NwYWNlX2lkGAMgASgJSAGIAQFCEwoRX25vdGVzX3Nlc3Npb25faWRCDwoNX3dvcmtzcGFjZV9pZCK6AQoUUmVxdWVzdENvbnRleHRSZXN1bHQSMgoHc3VjY2VzcxgBIAEoCzIfLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0U3VjY2Vzc0gAEi4KBWVycm9yGAIgASgLMh0uYWdlbnQudjEuUmVxdWVzdENvbnRleHRFcnJvckgAEjQKCHJlamVjdGVkGAMgASgLMiAuYWdlbnQudjEuUmVxdWVzdENvbnRleHRSZWplY3RlZEgAQggKBnJlc3VsdCJKChVSZXF1ZXN0Q29udGV4dFN1Y2Nlc3MSMQoPcmVxdWVzdF9jb250ZXh0GAEgASgLMhguYWdlbnQudjEuUmVxdWVzdENvbnRleHQiJAoTUmVxdWVzdENvbnRleHRFcnJvchINCgVlcnJvchgBIAEoCSIoChZSZXF1ZXN0Q29udGV4dFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSLCAQoKSW1hZ2VQcm90bxIMCgRkYXRhGAEgASgMEgwKBHV1aWQYAiABKAkSDAoEcGF0aBgDIAEoCRIxCglkaW1lbnNpb24YBCABKAsyHi5hZ2VudC52MS5JbWFnZVByb3RvX0RpbWVuc2lvbhImChl0YXNrX3NwZWNpZmljX2Rlc2NyaXB0aW9uGAYgASgJSACIAQESEQoJbWltZV90eXBlGAcgASgJQhwKGl90YXNrX3NwZWNpZmljX2Rlc2NyaXB0aW9uIjUKFEltYWdlUHJvdG9fRGltZW5zaW9uEg0KBXdpZHRoGAEgASgFEg4KBmhlaWdodBgCIAEoBSJoCgtHaXRSZXBvSW5mbxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRITCgticmFuY2hfbmFtZRgDIAEoCRIXCgpyZW1vdGVfdXJsGAQgASgJSACIAQFCDQoLX3JlbW90ZV91cmwimwIKEVJlcXVlc3RDb250ZXh0RW52EhIKCm9zX3ZlcnNpb24YASABKAkSFwoPd29ya3NwYWNlX3BhdGhzGAIgAygJEg0KBXNoZWxsGAMgASgJEhcKD3NhbmRib3hfZW5hYmxlZBgFIAEoCBIYChB0ZXJtaW5hbHNfZm9sZGVyGAcgASgJEiEKGWFnZW50X3NoYXJlZF9ub3Rlc19mb2xkZXIYCCABKAkSJwofYWdlbnRfY29udmVyc2F0aW9uX25vdGVzX2ZvbGRlchgJIAEoCRIRCgl0aW1lX3pvbmUYCiABKAkSFgoOcHJvamVjdF9mb2xkZXIYCyABKAkSIAoYYWdlbnRfdHJhbnNjcmlwdHNfZm9sZGVyGAwgASgJIjwKD0RlYnVnTW9kZUNvbmZpZxIQCghsb2dfcGF0aBgBIAEoCRIXCg9zZXJ2ZXJfZW5kcG9pbnQYAiABKAkitAEKD1NraWxsRGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2ZvbGRlcl9wYXRoGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSGAoLcGFyc2VfZXJyb3IYBSABKAlIAIgBARIYChByZWFkbWVfZmlsZV9wYXRoGAYgASgJEhQKDHBhY2thZ2VfdHlwZRgHIAEoBUIOCgxfcGFyc2VfZXJyb3IiRAoMU2tpbGxPcHRpb25zEjQKEXNraWxsX2Rlc2NyaXB0b3JzGAEgAygLMhkuYWdlbnQudjEuU2tpbGxEZXNjcmlwdG9yIvYICg5SZXF1ZXN0Q29udGV4dBIjCgVydWxlcxgCIAMoCzIULmFnZW50LnYxLkN1cnNvclJ1bGUSKAoDZW52GAQgASgLMhsuYWdlbnQudjEuUmVxdWVzdENvbnRleHRFbnYSOQoPcmVwb3NpdG9yeV9pbmZvGAYgAygLMiAuYWdlbnQudjEuUmVwb3NpdG9yeUluZGV4aW5nSW5mbxIqCgV0b29scxgHIAMoCzIbLmFnZW50LnYxLk1jcFRvb2xEZWZpbml0aW9uEicKGmNvbnZlcnNhdGlvbl9ub3Rlc19saXN0aW5nGAggASgJSACIAQESIQoUc2hhcmVkX25vdGVzX2xpc3RpbmcYCSABKAlIAYgBARIoCglnaXRfcmVwb3MYCyADKAsyFS5hZ2VudC52MS5HaXRSZXBvSW5mbxI2Cg9wcm9qZWN0X2xheW91dHMYDSADKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlEjMKEG1jcF9pbnN0cnVjdGlvbnMYDiADKAsyGS5hZ2VudC52MS5NY3BJbnN0cnVjdGlvbnMSOQoRZGVidWdfbW9kZV9jb25maWcYDyABKAsyGS5hZ2VudC52MS5EZWJ1Z01vZGVDb25maWdIAogBARIXCgpjbG91ZF9ydWxlGBAgASgJSAOIAQESHwoSd2ViX3NlYXJjaF9lbmFibGVkGBEgASgISASIAQESMgoNc2tpbGxfb3B0aW9ucxgSIAEoCzIWLmFnZW50LnYxLlNraWxsT3B0aW9uc0gFiAEBEi4KIXJlcG9zaXRvcnlfaW5mb19zaG91bGRfcXVlcnlfcHJvZBgTIAEoCEgGiAEBEkEKDWZpbGVfY29udGVudHMYFCADKAsyKi5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dC5GaWxlQ29udGVudHNFbnRyeRIgChN1c2VyX2ludGVudF9zdW1tYXJ5GBUgASgJSAeIAQESMgoQY3VzdG9tX3N1YmFnZW50cxgWIAMoCzIYLmFnZW50LnYxLkN1c3RvbVN1YmFnZW50EkQKF21jcF9maWxlX3N5c3RlbV9vcHRpb25zGBcgASgLMh4uYWdlbnQudjEuTWNwRmlsZVN5c3RlbU9wdGlvbnNICIgBARozChFGaWxlQ29udGVudHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQh0KG19jb252ZXJzYXRpb25fbm90ZXNfbGlzdGluZ0IXChVfc2hhcmVkX25vdGVzX2xpc3RpbmdCFAoSX2RlYnVnX21vZGVfY29uZmlnQg0KC19jbG91ZF9ydWxlQhUKE193ZWJfc2VhcmNoX2VuYWJsZWRCEAoOX3NraWxsX29wdGlvbnNCJAoiX3JlcG9zaXRvcnlfaW5mb19zaG91bGRfcXVlcnlfcHJvZEIWChRfdXNlcl9pbnRlbnRfc3VtbWFyeUIaChhfbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnMisgIKDVNhbmRib3hQb2xpY3kSDAoEdHlwZRgBIAEoBRIbCg5uZXR3b3JrX2FjY2VzcxgCIAEoCEgAiAEBEiIKGmFkZGl0aW9uYWxfcmVhZHdyaXRlX3BhdGhzGAMgAygJEiEKGWFkZGl0aW9uYWxfcmVhZG9ubHlfcGF0aHMYBCADKAkSHQoQZGVidWdfb3V0cHV0X2RpchgFIAEoCUgBiAEBEh0KEGJsb2NrX2dpdF93cml0ZXMYBiABKAhIAogBARIeChFkaXNhYmxlX3RtcF93cml0ZRgHIAEoCEgDiAEBQhEKD19uZXR3b3JrX2FjY2Vzc0ITChFfZGVidWdfb3V0cHV0X2RpckITChFfYmxvY2tfZ2l0X3dyaXRlc0IUChJfZGlzYWJsZV90bXBfd3JpdGUi7wEKDVNlbGVjdGVkSW1hZ2USDAoEdXVpZBgCIAEoCRIMCgRwYXRoGAMgASgJEjQKCWRpbWVuc2lvbhgEIAEoCzIhLmFnZW50LnYxLlNlbGVjdGVkSW1hZ2VfRGltZW5zaW9uEhEKCW1pbWVfdHlwZRgHIAEoCRIRCgdibG9iX2lkGAEgASgMSAASDgoEZGF0YRgIIAEoDEgAEkMKEWJsb2JfaWRfd2l0aF9kYXRhGAkgASgLMiYuYWdlbnQudjEuU2VsZWN0ZWRJbWFnZV9CbG9iSWRXaXRoRGF0YUgAQhEKD2RhdGFfb3JfYmxvYl9pZCI9ChxTZWxlY3RlZEltYWdlX0Jsb2JJZFdpdGhEYXRhEg8KB2Jsb2JfaWQYASABKAwSDAoEZGF0YRgCIAEoDCI4ChdTZWxlY3RlZEltYWdlX0RpbWVuc2lvbhINCgV3aWR0aBgBIAEoBRIOCgZoZWlnaHQYAiABKAUiSQoRRXh0cmFDb250ZXh0RW50cnkSDgoEZGF0YRgBIAEoCUgAEhEKB2Jsb2JfaWQYAiABKAxIAEIRCg9kYXRhX29yX2Jsb2JfaWQiWwoMU2VsZWN0ZWRGaWxlEg8KB2NvbnRlbnQYASABKAkSDAoEcGF0aBgCIAEoCRIaCg1yZWxhdGl2ZV9wYXRoGAMgASgJSACIAQFCEAoOX3JlbGF0aXZlX3BhdGgihAEKFVNlbGVjdGVkQ29kZVNlbGVjdGlvbhIPCgdjb250ZW50GAEgASgJEgwKBHBhdGgYAiABKAkSGgoNcmVsYXRpdmVfcGF0aBgDIAEoCUgAiAEBEh4KBXJhbmdlGAQgASgLMg8uYWdlbnQudjEuUmFuZ2VCEAoOX3JlbGF0aXZlX3BhdGgiXQoQU2VsZWN0ZWRUZXJtaW5hbBIPCgdjb250ZW50GAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESEQoEcGF0aBgDIAEoCUgBiAEBQggKBl90aXRsZUIHCgVfcGF0aCKGAQoZU2VsZWN0ZWRUZXJtaW5hbFNlbGVjdGlvbhIPCgdjb250ZW50GAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESEQoEcGF0aBgDIAEoCUgBiAEBEh4KBXJhbmdlGAQgASgLMg8uYWdlbnQudjEuUmFuZ2VCCAoGX3RpdGxlQgcKBV9wYXRoIoMBCg5TZWxlY3RlZEZvbGRlchIMCgRwYXRoGAEgASgJEhoKDXJlbGF0aXZlX3BhdGgYAiABKAlIAIgBARI1Cg5kaXJlY3RvcnlfdHJlZRgDIAEoCzIdLmFnZW50LnYxLkxzRGlyZWN0b3J5VHJlZU5vZGVCEAoOX3JlbGF0aXZlX3BhdGginwEKFFNlbGVjdGVkRXh0ZXJuYWxMaW5rEgsKA3VybBgBIAEoCRIMCgR1dWlkGAIgASgJEhgKC3BkZl9jb250ZW50GAMgASgJSACIAQESEwoGaXNfcGRmGAQgASgISAGIAQESFQoIZmlsZW5hbWUYBSABKAlIAogBAUIOCgxfcGRmX2NvbnRlbnRCCQoHX2lzX3BkZkILCglfZmlsZW5hbWUiOAoSU2VsZWN0ZWRDdXJzb3JSdWxlEiIKBHJ1bGUYASABKAsyFC5hZ2VudC52MS5DdXJzb3JSdWxlIiIKD1NlbGVjdGVkR2l0RGlmZhIPCgdjb250ZW50GAEgASgJIjIKH1NlbGVjdGVkR2l0RGlmZkZyb21CcmFuY2hUb01haW4SDwoHY29udGVudBgBIAEoCSJpChFTZWxlY3RlZEdpdENvbW1pdBILCgNzaGEYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEgwKBGRpZmYYBCABKAlCDgoMX2Rlc2NyaXB0aW9uIt0BChNTZWxlY3RlZFB1bGxSZXF1ZXN0Eg4KBm51bWJlchgBIAEoBRILCgN1cmwYAiABKAkSEgoFdGl0bGUYAyABKAlIAIgBARITCgtmb2xkZXJfcGF0aBgEIAEoCRIZCgxzdW1tYXJ5X2pzb24YBSABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgCiAEBEhQKB2Jsb2JfaWQYByABKAxIA4gBAUIICgZfdGl0bGVCDwoNX3N1bW1hcnlfanNvbkIOCgxfZGVzY3JpcHRpb25CCgoIX2Jsb2JfaWQiswEKGlNlbGVjdGVkR2l0UFJEaWZmU2VsZWN0aW9uEg4KBnByX3VybBgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSEgoKc3RhcnRfbGluZRgDIAEoBRIQCghlbmRfbGluZRgEIAEoBRIZCgxkaWZmX2NvbnRlbnQYBSABKAlIAIgBARIUCgdibG9iX2lkGAYgASgMSAGIAQFCDwoNX2RpZmZfY29udGVudEIKCghfYmxvYl9pZCI2ChVTZWxlY3RlZEN1cnNvckNvbW1hbmQSDAoEbmFtZRgBIAEoCRIPCgdjb250ZW50GAIgASgJIjUKFVNlbGVjdGVkRG9jdW1lbnRhdGlvbhIOCgZkb2NfaWQYASABKAkSDAoEbmFtZRgCIAEoCSIyChBTZWxlY3RlZFBhc3RDaGF0EhAKCGFnZW50X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiqwEKCUNhbGxGcmFtZRIaCg1mdW5jdGlvbl9uYW1lGAEgASgJSACIAQESEAoDdXJsGAIgASgJSAGIAQESGAoLbGluZV9udW1iZXIYAyABKAVIAogBARIaCg1jb2x1bW5fbnVtYmVyGAQgASgFSAOIAQFCEAoOX2Z1bmN0aW9uX25hbWVCBgoEX3VybEIOCgxfbGluZV9udW1iZXJCEAoOX2NvbHVtbl9udW1iZXIiaAoKU3RhY2tUcmFjZRIoCgtjYWxsX2ZyYW1lcxgBIAMoCzITLmFnZW50LnYxLkNhbGxGcmFtZRIcCg9yYXdfc3RhY2tfdHJhY2UYAiABKAlIAIgBAUISChBfcmF3X3N0YWNrX3RyYWNlIuQBChJTZWxlY3RlZENvbnNvbGVMb2cSDwoHbWVzc2FnZRgBIAEoCRIRCgl0aW1lc3RhbXAYAiABKAESDQoFbGV2ZWwYAyABKAkSEwoLY2xpZW50X25hbWUYBCABKAkSEgoKc2Vzc2lvbl9pZBgFIAEoCRIuCgtzdGFja190cmFjZRgGIAEoCzIULmFnZW50LnYxLlN0YWNrVHJhY2VIAIgBARIdChBvYmplY3RfZGF0YV9qc29uGAcgASgJSAGIAQFCDgoMX3N0YWNrX3RyYWNlQhMKEV9vYmplY3RfZGF0YV9qc29uIroBChFTZWxlY3RlZFVJRWxlbWVudBIPCgdlbGVtZW50GAEgASgJEg0KBXhwYXRoGAIgASgJEhQKDHRleHRfY29udGVudBgDIAEoCRINCgVleHRyYRgEIAEoCRIWCgljb21wb25lbnQYBSABKAlIAIgBARIhChRjb21wb25lbnRfcHJvcHNfanNvbhgGIAEoCUgBiAEBQgwKCl9jb21wb25lbnRCFwoVX2NvbXBvbmVudF9wcm9wc19qc29uIiAKEFNlbGVjdGVkU3ViYWdlbnQSDAoEbmFtZRgBIAEoCSKCCgoPU2VsZWN0ZWRDb250ZXh0EjAKD3NlbGVjdGVkX2ltYWdlcxgBIAMoCzIXLmFnZW50LnYxLlNlbGVjdGVkSW1hZ2USPAoSaW52b2NhdGlvbl9jb250ZXh0GAIgASgLMhsuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRIAIgBARIVCg1leHRyYV9jb250ZXh0GAMgAygJEjoKFWV4dHJhX2NvbnRleHRfZW50cmllcxgQIAMoCzIbLmFnZW50LnYxLkV4dHJhQ29udGV4dEVudHJ5EiUKBWZpbGVzGAQgAygLMhYuYWdlbnQudjEuU2VsZWN0ZWRGaWxlEjgKD2NvZGVfc2VsZWN0aW9ucxgFIAMoCzIfLmFnZW50LnYxLlNlbGVjdGVkQ29kZVNlbGVjdGlvbhItCgl0ZXJtaW5hbHMYBiADKAsyGi5hZ2VudC52MS5TZWxlY3RlZFRlcm1pbmFsEkAKE3Rlcm1pbmFsX3NlbGVjdGlvbnMYByADKAsyIy5hZ2VudC52MS5TZWxlY3RlZFRlcm1pbmFsU2VsZWN0aW9uEikKB2ZvbGRlcnMYCCADKAsyGC5hZ2VudC52MS5TZWxlY3RlZEZvbGRlchI2Cg5leHRlcm5hbF9saW5rcxgJIAMoCzIeLmFnZW50LnYxLlNlbGVjdGVkRXh0ZXJuYWxMaW5rEjIKDGN1cnNvcl9ydWxlcxgKIAMoCzIcLmFnZW50LnYxLlNlbGVjdGVkQ3Vyc29yUnVsZRIwCghnaXRfZGlmZhgSIAEoCzIZLmFnZW50LnYxLlNlbGVjdGVkR2l0RGlmZkgBiAEBElQKHGdpdF9kaWZmX2Zyb21fYnJhbmNoX3RvX21haW4YCyABKAsyKS5hZ2VudC52MS5TZWxlY3RlZEdpdERpZmZGcm9tQnJhbmNoVG9NYWluSAKIAQESOAoPY3Vyc29yX2NvbW1hbmRzGAwgAygLMh8uYWdlbnQudjEuU2VsZWN0ZWRDdXJzb3JDb21tYW5kEjcKDmRvY3VtZW50YXRpb25zGA0gAygLMh8uYWdlbnQudjEuU2VsZWN0ZWREb2N1bWVudGF0aW9uEjAKC3VpX2VsZW1lbnRzGA4gAygLMhsuYWdlbnQudjEuU2VsZWN0ZWRVSUVsZW1lbnQSMgoMY29uc29sZV9sb2dzGA8gAygLMhwuYWdlbnQudjEuU2VsZWN0ZWRDb25zb2xlTG9nEjAKC2dpdF9jb21taXRzGBEgAygLMhsuYWdlbnQudjEuU2VsZWN0ZWRHaXRDb21taXQSLgoKcGFzdF9jaGF0cxgTIAMoCzIaLmFnZW50LnYxLlNlbGVjdGVkUGFzdENoYXQSRAoWZ2l0X3ByX2RpZmZfc2VsZWN0aW9ucxgUIAMoCzIkLmFnZW50LnYxLlNlbGVjdGVkR2l0UFJEaWZmU2VsZWN0aW9uEj0KFnNlbGVjdGVkX3B1bGxfcmVxdWVzdHMYFSADKAsyHS5hZ2VudC52MS5TZWxlY3RlZFB1bGxSZXF1ZXN0EjYKEnNlbGVjdGVkX3N1YmFnZW50cxgWIAMoCzIaLmFnZW50LnYxLlNlbGVjdGVkU3ViYWdlbnRCFQoTX2ludm9jYXRpb25fY29udGV4dEILCglfZ2l0X2RpZmZCHwodX2dpdF9kaWZmX2Zyb21fYnJhbmNoX3RvX21haW4i5QEKEUludm9jYXRpb25Db250ZXh0Ej8KDHNsYWNrX3RocmVhZBgBIAEoCzInLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X1NsYWNrVGhyZWFkSAASOQoJZ2l0aHViX3ByGAIgASgLMiQuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRfR2l0aHViUFJIABI5CglpZGVfc3RhdGUYAyABKAsyJC5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZUgAEhEKB2Jsb2JfaWQYCiABKAxIAEIGCgRkYXRhIrsBCh1JbnZvY2F0aW9uQ29udGV4dF9TbGFja1RocmVhZBIOCgZ0aHJlYWQYASABKAkSGQoMY2hhbm5lbF9uYW1lGAIgASgJSACIAQESHAoPY2hhbm5lbF9wdXJwb3NlGAMgASgJSAGIAQESGgoNY2hhbm5lbF90b3BpYxgEIAEoCUgCiAEBQg8KDV9jaGFubmVsX25hbWVCEgoQX2NoYW5uZWxfcHVycG9zZUIQCg5fY2hhbm5lbF90b3BpYyJ8ChpJbnZvY2F0aW9uQ29udGV4dF9HaXRodWJQUhINCgV0aXRsZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghjb21tZW50cxgDIAEoCRIYCgtjaV9mYWlsdXJlcxgEIAEoCUgAiAEBQg4KDF9jaV9mYWlsdXJlcyL+AQoaSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGUSQAoNdmlzaWJsZV9maWxlcxgBIAMoCzIpLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGUSSAoVcmVjZW50bHlfdmlld2VkX2ZpbGVzGAIgAygLMikuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGVfRmlsZRJUChRjdXJyZW50bHlfdmlld2VkX3BycxgDIAMoCzI2LmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX1ZpZXdlZFB1bGxSZXF1ZXN0Io4CCh9JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9GaWxlEgwKBHBhdGgYASABKAkSGgoNcmVsYXRpdmVfcGF0aBgCIAEoCUgAiAEBElYKD2N1cnNvcl9wb3NpdGlvbhgDIAEoCzI4LmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGVfQ3Vyc29yUG9zaXRpb25IAYgBARITCgt0b3RhbF9saW5lcxgEIAEoBRIbCg5hY3RpdmVfY29tbWFuZBgFIAEoCUgCiAEBQhAKDl9yZWxhdGl2ZV9wYXRoQhIKEF9jdXJzb3JfcG9zaXRpb25CEQoPX2FjdGl2ZV9jb21tYW5kIkwKLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGVfQ3Vyc29yUG9zaXRpb24SDAoEbGluZRgBIAEoBRIMCgR0ZXh0GAIgASgJIukBCixJbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9WaWV3ZWRQdWxsUmVxdWVzdBIOCgZudW1iZXIYASABKAUSCwoDdXJsGAIgASgJEhIKBXRpdGxlGAMgASgJSACIAQESGAoLZm9sZGVyX3BhdGgYBCABKAlIAYgBARIZCgxzdW1tYXJ5X2pzb24YBSABKAlIAogBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgDiAEBQggKBl90aXRsZUIOCgxfZm9sZGVyX3BhdGhCDwoNX3N1bW1hcnlfanNvbkIOCgxfZGVzY3JpcHRpb24iSAoWU2V0dXBWbUVudmlyb25tZW50QXJncxIXCg9pbnN0YWxsX2NvbW1hbmQYAiABKAkSFQoNc3RhcnRfY29tbWFuZBgDIAEoCSJcChhTZXR1cFZtRW52aXJvbm1lbnRSZXN1bHQSNgoHc3VjY2VzcxgBIAEoCzIjLmFnZW50LnYxLlNldHVwVm1FbnZpcm9ubWVudFN1Y2Nlc3NIAEIICgZyZXN1bHQiGwoZU2V0dXBWbUVudmlyb25tZW50U3VjY2VzcyKAAQoaU2V0dXBWbUVudmlyb25tZW50VG9vbENhbGwSLgoEYXJncxgBIAEoCzIgLmFnZW50LnYxLlNldHVwVm1FbnZpcm9ubWVudEFyZ3MSMgoGcmVzdWx0GAIgASgLMiIuYWdlbnQudjEuU2V0dXBWbUVudmlyb25tZW50UmVzdWx0IsABChlTaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0EhYKDnBhcnNpbmdfZmFpbGVkGAEgASgIElIKE2V4ZWN1dGFibGVfY29tbWFuZHMYAiADKAsyNS5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0X0V4ZWN1dGFibGVDb21tYW5kEhUKDWhhc19yZWRpcmVjdHMYAyABKAgSIAoYaGFzX2NvbW1hbmRfc3Vic3RpdHV0aW9uGAQgASgIIk0KLlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHRfRXhlY3V0YWJsZUNvbW1hbmRBcmcSDAoEdHlwZRgBIAEoCRINCgV2YWx1ZRgCIAEoCSKWAQorU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdF9FeGVjdXRhYmxlQ29tbWFuZBIMCgRuYW1lGAEgASgJEkYKBGFyZ3MYAiADKAsyOC5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0X0V4ZWN1dGFibGVDb21tYW5kQXJnEhEKCWZ1bGxfdGV4dBgDIAEoCSKIBAoJU2hlbGxBcmdzEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSDwoHdGltZW91dBgDIAEoBRIUCgx0b29sX2NhbGxfaWQYBCABKAkSFwoPc2ltcGxlX2NvbW1hbmRzGAUgAygJEhoKEmhhc19pbnB1dF9yZWRpcmVjdBgGIAEoCBIbChNoYXNfb3V0cHV0X3JlZGlyZWN0GAcgASgIEjsKDnBhcnNpbmdfcmVzdWx0GAggASgLMiMuYWdlbnQudjEuU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdBI+ChhyZXF1ZXN0ZWRfc2FuZGJveF9wb2xpY3kYCSABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQESKAobZmlsZV9vdXRwdXRfdGhyZXNob2xkX2J5dGVzGAogASgESAGIAQESFQoNaXNfYmFja2dyb3VuZBgLIAEoCBIVCg1za2lwX2FwcHJvdmFsGAwgASgIEhgKEHRpbWVvdXRfYmVoYXZpb3IYDSABKAUSGQoMaGFyZF90aW1lb3V0GA4gASgFSAKIAQFCGwoZX3JlcXVlc3RlZF9zYW5kYm94X3BvbGljeUIeChxfZmlsZV9vdXRwdXRfdGhyZXNob2xkX2J5dGVzQg8KDV9oYXJkX3RpbWVvdXQi+gMKC1NoZWxsUmVzdWx0EjQKDnNhbmRib3hfcG9saWN5GGUgASgLMhcuYWdlbnQudjEuU2FuZGJveFBvbGljeUgBiAEBEhoKDWlzX2JhY2tncm91bmQYZiABKAhIAogBARIdChB0ZXJtaW5hbHNfZm9sZGVyGGcgASgJSAOIAQESEAoDcGlkGGggASgNSASIAQESKQoHc3VjY2VzcxgBIAEoCzIWLmFnZW50LnYxLlNoZWxsU3VjY2Vzc0gAEikKB2ZhaWx1cmUYAiABKAsyFi5hZ2VudC52MS5TaGVsbEZhaWx1cmVIABIpCgd0aW1lb3V0GAMgASgLMhYuYWdlbnQudjEuU2hlbGxUaW1lb3V0SAASKwoIcmVqZWN0ZWQYBCABKAsyFy5hZ2VudC52MS5TaGVsbFJlamVjdGVkSAASMAoLc3Bhd25fZXJyb3IYBSABKAsyGS5hZ2VudC52MS5TaGVsbFNwYXduRXJyb3JIABI8ChFwZXJtaXNzaW9uX2RlbmllZBgHIAEoCzIfLmFnZW50LnYxLlNoZWxsUGVybWlzc2lvbkRlbmllZEgAQggKBnJlc3VsdEIRCg9fc2FuZGJveF9wb2xpY3lCEAoOX2lzX2JhY2tncm91bmRCEwoRX3Rlcm1pbmFsc19mb2xkZXJCBgoEX3BpZCIhChFTaGVsbFN0cmVhbVN0ZG91dBIMCgRkYXRhGAEgASgJIiEKEVNoZWxsU3RyZWFtU3RkZXJyEgwKBGRhdGEYASABKAkitQEKD1NoZWxsU3RyZWFtRXhpdBIMCgRjb2RlGAEgASgNEgsKA2N3ZBgCIAEoCRI2Cg9vdXRwdXRfbG9jYXRpb24YAyABKAsyGC5hZ2VudC52MS5PdXRwdXRMb2NhdGlvbkgAiAEBEg8KB2Fib3J0ZWQYBCABKAgSGQoMYWJvcnRfcmVhc29uGAUgASgFSAGIAQFCEgoQX291dHB1dF9sb2NhdGlvbkIPCg1fYWJvcnRfcmVhc29uIlsKEFNoZWxsU3RyZWFtU3RhcnQSNAoOc2FuZGJveF9wb2xpY3kYASABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQFCEQoPX3NhbmRib3hfcG9saWN5IpkBChdTaGVsbFN0cmVhbUJhY2tncm91bmRlZBIQCghzaGVsbF9pZBgBIAEoDRIPCgdjb21tYW5kGAIgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAMgASgJEhAKA3BpZBgEIAEoDUgAiAEBEhcKCm1zX3RvX3dhaXQYBSABKAVIAYgBAUIGCgRfcGlkQg0KC19tc190b193YWl0IvICCgtTaGVsbFN0cmVhbRItCgZzdGRvdXQYASABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZG91dEgAEi0KBnN0ZGVychgCIAEoCzIbLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RkZXJySAASKQoEZXhpdBgDIAEoCzIZLmFnZW50LnYxLlNoZWxsU3RyZWFtRXhpdEgAEisKBXN0YXJ0GAQgASgLMhouYWdlbnQudjEuU2hlbGxTdHJlYW1TdGFydEgAEisKCHJlamVjdGVkGAUgASgLMhcuYWdlbnQudjEuU2hlbGxSZWplY3RlZEgAEjwKEXBlcm1pc3Npb25fZGVuaWVkGAYgASgLMh8uYWdlbnQudjEuU2hlbGxQZXJtaXNzaW9uRGVuaWVkSAASOQoMYmFja2dyb3VuZGVkGAcgASgLMiEuYWdlbnQudjEuU2hlbGxTdHJlYW1CYWNrZ3JvdW5kZWRIAEIHCgVldmVudCJLCg5PdXRwdXRMb2NhdGlvbhIRCglmaWxlX3BhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoAxISCgpsaW5lX2NvdW50GAMgASgDIv8CCgxTaGVsbFN1Y2Nlc3MSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUSDgoGc2lnbmFsGAQgASgJEg4KBnN0ZG91dBgFIAEoCRIOCgZzdGRlcnIYBiABKAkSFgoOZXhlY3V0aW9uX3RpbWUYByABKAUSNgoPb3V0cHV0X2xvY2F0aW9uGAggASgLMhguYWdlbnQudjEuT3V0cHV0TG9jYXRpb25IAIgBARIVCghzaGVsbF9pZBgJIAEoDUgBiAEBEh8KEmludGVybGVhdmVkX291dHB1dBgKIAEoCUgCiAEBEhAKA3BpZBgLIAEoDUgDiAEBEhcKCm1zX3RvX3dhaXQYDCABKAVIBIgBAUISChBfb3V0cHV0X2xvY2F0aW9uQgsKCV9zaGVsbF9pZEIVChNfaW50ZXJsZWF2ZWRfb3V0cHV0QgYKBF9waWRCDQoLX21zX3RvX3dhaXQi1gIKDFNoZWxsRmFpbHVyZRIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBRIOCgZzaWduYWwYBCABKAkSDgoGc3Rkb3V0GAUgASgJEg4KBnN0ZGVychgGIAEoCRIWCg5leGVjdXRpb25fdGltZRgHIAEoBRI2Cg9vdXRwdXRfbG9jYXRpb24YCCABKAsyGC5hZ2VudC52MS5PdXRwdXRMb2NhdGlvbkgAiAEBEh8KEmludGVybGVhdmVkX291dHB1dBgJIAEoCUgBiAEBEhkKDGFib3J0X3JlYXNvbhgKIAEoBUgCiAEBEg8KB2Fib3J0ZWQYCyABKAhCEgoQX291dHB1dF9sb2NhdGlvbkIVChNfaW50ZXJsZWF2ZWRfb3V0cHV0Qg8KDV9hYm9ydF9yZWFzb24iTgoMU2hlbGxUaW1lb3V0Eg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSEgoKdGltZW91dF9tcxgDIAEoBSJgCg1TaGVsbFJlamVjdGVkEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSDgoGcmVhc29uGAMgASgJEhMKC2lzX3JlYWRvbmx5GAQgASgIImcKFVNoZWxsUGVybWlzc2lvbkRlbmllZBIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg0KBWVycm9yGAMgASgJEhMKC2lzX3JlYWRvbmx5GAQgASgIIkwKD1NoZWxsU3Bhd25FcnJvchIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg0KBWVycm9yGAMgASgJIkAKElNoZWxsUGFydGlhbFJlc3VsdBIUCgxzdGRvdXRfZGVsdGEYASABKAkSFAoMc3RkZXJyX2RlbHRhGAIgASgJIlkKDVNoZWxsVG9vbENhbGwSIQoEYXJncxgBIAEoCzITLmFnZW50LnYxLlNoZWxsQXJncxIlCgZyZXN1bHQYAiABKAsyFS5hZ2VudC52MS5TaGVsbFJlc3VsdCIrChhTaGVsbFRvb2xDYWxsU3Rkb3V0RGVsdGESDwoHY29udGVudBgBIAEoCSIrChhTaGVsbFRvb2xDYWxsU3RkZXJyRGVsdGESDwoHY29udGVudBgBIAEoCSKJAQoSU2hlbGxUb29sQ2FsbERlbHRhEjQKBnN0ZG91dBgBIAEoCzIiLmFnZW50LnYxLlNoZWxsVG9vbENhbGxTdGRvdXREZWx0YUgAEjQKBnN0ZGVychgCIAEoCzIiLmFnZW50LnYxLlNoZWxsVG9vbENhbGxTdGRlcnJEZWx0YUgAQgcKBWRlbHRhIu0BCgxTdWJhZ2VudFR5cGUSOAoLdW5zcGVjaWZpZWQYASABKAsyIS5hZ2VudC52MS5TdWJhZ2VudFR5cGVVbnNwZWNpZmllZEgAEjkKDGNvbXB1dGVyX3VzZRgCIAEoCzIhLmFnZW50LnYxLlN1YmFnZW50VHlwZUNvbXB1dGVyVXNlSAASLgoGY3VzdG9tGAMgASgLMhwuYWdlbnQudjEuU3ViYWdlbnRUeXBlQ3VzdG9tSAASMAoHZXhwbG9yZRgEIAEoCzIdLmFnZW50LnYxLlN1YmFnZW50VHlwZUV4cGxvcmVIAEIGCgR0eXBlIhkKF1N1YmFnZW50VHlwZVVuc3BlY2lmaWVkIhkKF1N1YmFnZW50VHlwZUNvbXB1dGVyVXNlIhUKE1N1YmFnZW50VHlwZUV4cGxvcmUiIgoSU3ViYWdlbnRUeXBlQ3VzdG9tEgwKBG5hbWUYASABKAkijQEKDkN1c3RvbVN1YmFnZW50EhEKCWZ1bGxfcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBXRvb2xzGAQgAygJEg0KBW1vZGVsGAUgASgJEg4KBnByb21wdBgGIAEoCRIXCg9wZXJtaXNzaW9uX21vZGUYByABKAUiaAoOU3dpdGNoTW9kZUFyZ3MSFgoOdGFyZ2V0X21vZGVfaWQYASABKAkSGAoLZXhwbGFuYXRpb24YAiABKAlIAIgBARIUCgx0b29sX2NhbGxfaWQYAyABKAlCDgoMX2V4cGxhbmF0aW9uIqoBChBTd2l0Y2hNb2RlUmVzdWx0Ei4KB3N1Y2Nlc3MYASABKAsyGy5hZ2VudC52MS5Td2l0Y2hNb2RlU3VjY2Vzc0gAEioKBWVycm9yGAIgASgLMhkuYWdlbnQudjEuU3dpdGNoTW9kZUVycm9ySAASMAoIcmVqZWN0ZWQYAyABKAsyHC5hZ2VudC52MS5Td2l0Y2hNb2RlUmVqZWN0ZWRIAEIICgZyZXN1bHQiPQoRU3dpdGNoTW9kZVN1Y2Nlc3MSFAoMZnJvbV9tb2RlX2lkGAEgASgJEhIKCnRvX21vZGVfaWQYAiABKAkiIAoPU3dpdGNoTW9kZUVycm9yEg0KBWVycm9yGAEgASgJIiQKElN3aXRjaE1vZGVSZWplY3RlZBIOCgZyZWFzb24YASABKAkiaAoSU3dpdGNoTW9kZVRvb2xDYWxsEiYKBGFyZ3MYASABKAsyGC5hZ2VudC52MS5Td2l0Y2hNb2RlQXJncxIqCgZyZXN1bHQYAiABKAsyGi5hZ2VudC52MS5Td2l0Y2hNb2RlUmVzdWx0IkAKFlN3aXRjaE1vZGVSZXF1ZXN0UXVlcnkSJgoEYXJncxgBIAEoCzIYLmFnZW50LnYxLlN3aXRjaE1vZGVBcmdzIqkBChlTd2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlEkAKCGFwcHJvdmVkGAEgASgLMiwuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZEgAEkAKCHJlamVjdGVkGAIgASgLMiwuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZV9SZWplY3RlZEgAQggKBnJlc3VsdCIkCiJTd2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjQKIlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJInUKCFRvZG9JdGVtEgoKAmlkGAEgASgJEg8KB2NvbnRlbnQYAiABKAkSDgoGc3RhdHVzGAMgASgFEhIKCmNyZWF0ZWRfYXQYBCABKAMSEgoKdXBkYXRlZF9hdBgFIAEoAxIUCgxkZXBlbmRlbmNpZXMYBiADKAkiawoTVXBkYXRlVG9kb3NUb29sQ2FsbBInCgRhcmdzGAEgASgLMhkuYWdlbnQudjEuVXBkYXRlVG9kb3NBcmdzEisKBnJlc3VsdBgCIAEoCzIbLmFnZW50LnYxLlVwZGF0ZVRvZG9zUmVzdWx0IkMKD1VwZGF0ZVRvZG9zQXJncxIhCgV0b2RvcxgBIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEg0KBW1lcmdlGAIgASgIInsKEVVwZGF0ZVRvZG9zUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5VcGRhdGVUb2Rvc1N1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLlVwZGF0ZVRvZG9zRXJyb3JIAEIICgZyZXN1bHQiXwoSVXBkYXRlVG9kb3NTdWNjZXNzEiEKBXRvZG9zGAEgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0SEwoLdG90YWxfY291bnQYAiABKAUSEQoJd2FzX21lcmdlGAMgASgIIiEKEFVwZGF0ZVRvZG9zRXJyb3ISDQoFZXJyb3IYASABKAkiZQoRUmVhZFRvZG9zVG9vbENhbGwSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLlJlYWRUb2Rvc0FyZ3MSKQoGcmVzdWx0GAIgASgLMhkuYWdlbnQudjEuUmVhZFRvZG9zUmVzdWx0IjkKDVJlYWRUb2Rvc0FyZ3MSFQoNc3RhdHVzX2ZpbHRlchgBIAMoBRIRCglpZF9maWx0ZXIYAiADKAkidQoPUmVhZFRvZG9zUmVzdWx0Ei0KB3N1Y2Nlc3MYASABKAsyGi5hZ2VudC52MS5SZWFkVG9kb3NTdWNjZXNzSAASKQoFZXJyb3IYAiABKAsyGC5hZ2VudC52MS5SZWFkVG9kb3NFcnJvckgAQggKBnJlc3VsdCJKChBSZWFkVG9kb3NTdWNjZXNzEiEKBXRvZG9zGAEgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0SEwoLdG90YWxfY291bnQYAiABKAUiHwoOUmVhZFRvZG9zRXJyb3ISDQoFZXJyb3IYASABKAkiSwoFUmFuZ2USIQoFc3RhcnQYASABKAsyEi5hZ2VudC52MS5Qb3NpdGlvbhIfCgNlbmQYAiABKAsyEi5hZ2VudC52MS5Qb3NpdGlvbiIoCghQb3NpdGlvbhIMCgRsaW5lGAEgASgNEg4KBmNvbHVtbhgCIAEoDSIYCgVFcnJvchIPCgdtZXNzYWdlGAEgASgJIjoKDVdlYlNlYXJjaEFyZ3MSEwoLc2VhcmNoX3Rlcm0YASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIqYBCg9XZWJTZWFyY2hSZXN1bHQSLQoHc3VjY2VzcxgBIAEoCzIaLmFnZW50LnYxLldlYlNlYXJjaFN1Y2Nlc3NIABIpCgVlcnJvchgCIAEoCzIYLmFnZW50LnYxLldlYlNlYXJjaEVycm9ySAASLwoIcmVqZWN0ZWQYAyABKAsyGy5hZ2VudC52MS5XZWJTZWFyY2hSZWplY3RlZEgAQggKBnJlc3VsdCJEChBXZWJTZWFyY2hTdWNjZXNzEjAKCnJlZmVyZW5jZXMYASADKAsyHC5hZ2VudC52MS5XZWJTZWFyY2hSZWZlcmVuY2UiHwoOV2ViU2VhcmNoRXJyb3ISDQoFZXJyb3IYASABKAkiIwoRV2ViU2VhcmNoUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIj8KEldlYlNlYXJjaFJlZmVyZW5jZRINCgV0aXRsZRgBIAEoCRILCgN1cmwYAiABKAkSDQoFY2h1bmsYAyABKAkiZQoRV2ViU2VhcmNoVG9vbENhbGwSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLldlYlNlYXJjaEFyZ3MSKQoGcmVzdWx0GAIgASgLMhkuYWdlbnQudjEuV2ViU2VhcmNoUmVzdWx0Ij4KFVdlYlNlYXJjaFJlcXVlc3RRdWVyeRIlCgRhcmdzGAEgASgLMhcuYWdlbnQudjEuV2ViU2VhcmNoQXJncyKmAQoYV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlEj8KCGFwcHJvdmVkGAEgASgLMisuYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkSAASPwoIcmVqZWN0ZWQYAiABKAsyKy5hZ2VudC52MS5XZWJTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWRIAEIICgZyZXN1bHQiIwohV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjMKIVdlYlNlYXJjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZBIOCgZyZWFzb24YASABKAkifwoJV3JpdGVBcmdzEgwKBHBhdGgYASABKAkSEQoJZmlsZV90ZXh0GAIgASgJEhQKDHRvb2xfY2FsbF9pZBgDIAEoCRInCh9yZXR1cm5fZmlsZV9jb250ZW50X2FmdGVyX3dyaXRlGAQgASgIEhIKCmZpbGVfYnl0ZXMYBSABKAwigAIKC1dyaXRlUmVzdWx0EikKB3N1Y2Nlc3MYASABKAsyFi5hZ2VudC52MS5Xcml0ZVN1Y2Nlc3NIABI8ChFwZXJtaXNzaW9uX2RlbmllZBgDIAEoCzIfLmFnZW50LnYxLldyaXRlUGVybWlzc2lvbkRlbmllZEgAEioKCG5vX3NwYWNlGAQgASgLMhYuYWdlbnQudjEuV3JpdGVOb1NwYWNlSAASJQoFZXJyb3IYBSABKAsyFC5hZ2VudC52MS5Xcml0ZUVycm9ySAASKwoIcmVqZWN0ZWQYBiABKAsyFy5hZ2VudC52MS5Xcml0ZVJlamVjdGVkSABCCAoGcmVzdWx0IooBCgxXcml0ZVN1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIVCg1saW5lc19jcmVhdGVkGAIgASgFEhEKCWZpbGVfc2l6ZRgDIAEoBRIlChhmaWxlX2NvbnRlbnRfYWZ0ZXJfd3JpdGUYBCABKAlIAIgBAUIbChlfZmlsZV9jb250ZW50X2FmdGVyX3dyaXRlIm8KFVdyaXRlUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJEhEKCWRpcmVjdG9yeRgCIAEoCRIRCglvcGVyYXRpb24YAyABKAkSDQoFZXJyb3IYBCABKAkSEwoLaXNfcmVhZG9ubHkYBSABKAgiHAoMV3JpdGVOb1NwYWNlEgwKBHBhdGgYASABKAkiKQoKV3JpdGVFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIi0KDVdyaXRlUmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkigwEKF0Jvb3RzdHJhcFN0YXRzaWdSZXF1ZXN0Eh4KEWlnbm9yZV9kZXZfc3RhdHVzGAEgASgISACIAQESHQoQb3BlcmF0aW5nX3N5c3RlbRgCIAEoBUgBiAEBQhQKEl9pZ25vcmVfZGV2X3N0YXR1c0ITChFfb3BlcmF0aW5nX3N5c3RlbSIOCgxQaW5nUmVzcG9uc2UitwEKC0V4ZWNSZXF1ZXN0Eg8KB2NvbW1hbmQYASABKAkSEAoDY3dkGAIgASgJSACIAQESDAoEYXJncxgDIAMoCRI7CgtlbnZpcm9ubWVudBgEIAMoCzImLmFnZW50LnYxLkV4ZWNSZXF1ZXN0LkVudmlyb25tZW50RW50cnkaMgoQRW52aXJvbm1lbnRFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgYKBF9jd2QioAEKDEV4ZWNSZXNwb25zZRItCgxzdGRvdXRfZXZlbnQYASABKAsyFS5hZ2VudC52MS5TdGRvdXRFdmVudEgAEi0KDHN0ZGVycl9ldmVudBgCIAEoCzIVLmFnZW50LnYxLlN0ZGVyckV2ZW50SAASKQoKZXhpdF9ldmVudBgDIAEoCzITLmFnZW50LnYxLkV4aXRFdmVudEgAQgcKBWV2ZW50IhsKC1N0ZG91dEV2ZW50EgwKBGRhdGEYASABKAkiGwoLU3RkZXJyRXZlbnQSDAoEZGF0YRgBIAEoCSIeCglFeGl0RXZlbnQSEQoJZXhpdF9jb2RlGAEgASgFIiMKE1JlYWRUZXh0RmlsZVJlcXVlc3QSDAoEcGF0aBgBIAEoCSInChRSZWFkVGV4dEZpbGVSZXNwb25zZRIPCgdjb250ZW50GAEgASgJIjUKFFdyaXRlVGV4dEZpbGVSZXF1ZXN0EgwKBHBhdGgYASABKAkSDwoHY29udGVudBgCIAEoCSIXChVXcml0ZVRleHRGaWxlUmVzcG9uc2UiJQoVUmVhZEJpbmFyeUZpbGVSZXF1ZXN0EgwKBHBhdGgYASABKAkiKQoWUmVhZEJpbmFyeUZpbGVSZXNwb25zZRIPCgdjb250ZW50GAEgASgMIjcKFldyaXRlQmluYXJ5RmlsZVJlcXVlc3QSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgMIhkKF1dyaXRlQmluYXJ5RmlsZVJlc3BvbnNlIkUKHkdldFdvcmtzcGFjZUNoYW5nZXNIYXNoUmVxdWVzdBIRCglyb290X3BhdGgYASABKAkSEAoIYmFzZV9yZWYYAiABKAkiLwofR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXNwb25zZRIMCgRoYXNoGAEgASgJIlAKH1JlZnJlc2hHaXRodWJBY2Nlc3NUb2tlblJlcXVlc3QSGwoTZ2l0aHViX2FjY2Vzc190b2tlbhgBIAEoCRIQCghob3N0bmFtZRgCIAEoCSIiCiBSZWZyZXNoR2l0aHViQWNjZXNzVG9rZW5SZXNwb25zZSJXCh1XYXJtUmVtb3RlQWNjZXNzU2VydmVyUmVxdWVzdBIOCgZjb21taXQYASABKAkSDAoEcG9ydBgCIAEoBRIYChBjb25uZWN0aW9uX3Rva2VuGAMgASgJIiAKHldhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXJSZXNwb25zZSIWChRMaXN0QXJ0aWZhY3RzUmVxdWVzdCKKAgoWQXJ0aWZhY3RVcGxvYWRNZXRhZGF0YRIVCg1hYnNvbHV0ZV9wYXRoGAEgASgJEhIKCnNpemVfYnl0ZXMYAiABKAQSGgoSdXBkYXRlZF9hdF91bml4X21zGAMgASgDEg4KBnN0YXR1cxgEIAEoBRIWCg5ieXRlc191cGxvYWRlZBgFIAEoBBISCgpsYXN0X2Vycm9yGAYgASgJEhcKD3VwbG9hZF9hdHRlbXB0cxgHIAEoDRIfChdsYXN0X3N0YXJ0ZWRfYXRfdW5peF9tcxgIIAEoAxIgChhsYXN0X2ZpbmlzaGVkX2F0X3VuaXhfbXMYCSABKAMSEQoJdXBsb2FkX2lkGAogASgJIkwKFUxpc3RBcnRpZmFjdHNSZXNwb25zZRIzCglhcnRpZmFjdHMYASADKAsyIC5hZ2VudC52MS5BcnRpZmFjdFVwbG9hZE1ldGFkYXRhIk4KFlVwbG9hZEFydGlmYWN0c1JlcXVlc3QSNAoHdXBsb2FkcxgBIAMoCzIjLmFnZW50LnYxLkFydGlmYWN0VXBsb2FkSW5zdHJ1Y3Rpb24i1wIKGUFydGlmYWN0VXBsb2FkSW5zdHJ1Y3Rpb24SFQoNYWJzb2x1dGVfcGF0aBgBIAEoCRISCgp1cGxvYWRfdXJsGAIgASgJEg4KBm1ldGhvZBgDIAEoCRJBCgdoZWFkZXJzGAQgAygLMjAuYWdlbnQudjEuQXJ0aWZhY3RVcGxvYWRJbnN0cnVjdGlvbi5IZWFkZXJzRW50cnkSGQoMY29udGVudF90eXBlGAUgASgJSACIAQESHQoQc2xhY2tfdXBsb2FkX3VybBgGIAEoCUgBiAEBEhoKDXNsYWNrX2ZpbGVfaWQYByABKAlIAogBARouCgxIZWFkZXJzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIPCg1fY29udGVudF90eXBlQhMKEV9zbGFja191cGxvYWRfdXJsQhAKDl9zbGFja19maWxlX2lkIoQBChxBcnRpZmFjdFVwbG9hZERpc3BhdGNoUmVzdWx0EhUKDWFic29sdXRlX3BhdGgYASABKAkSDgoGc3RhdHVzGAIgASgFEg8KB21lc3NhZ2UYAyABKAkSGgoNc2xhY2tfZmlsZV9pZBgEIAEoCUgAiAEBQhAKDl9zbGFja19maWxlX2lkIlIKF1VwbG9hZEFydGlmYWN0c1Jlc3BvbnNlEjcKB3Jlc3VsdHMYASADKAsyJi5hZ2VudC52MS5BcnRpZmFjdFVwbG9hZERpc3BhdGNoUmVzdWx0IhwKGkdldE1jcFJlZnJlc2hUb2tlbnNSZXF1ZXN0IqUBChtHZXRNY3BSZWZyZXNoVG9rZW5zUmVzcG9uc2USUAoOcmVmcmVzaF90b2tlbnMYASADKAsyOC5hZ2VudC52MS5HZXRNY3BSZWZyZXNoVG9rZW5zUmVzcG9uc2UuUmVmcmVzaFRva2Vuc0VudHJ5GjQKElJlZnJlc2hUb2tlbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIqMBCiFVcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QSQQoDZW52GAEgAygLMjQuYWdlbnQudjEuVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0LkVudkVudHJ5Eg8KB3JlcGxhY2UYAiABKAgaKgoIRW52RW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJGCiJVcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1Jlc3BvbnNlEg8KB2FwcGxpZWQYASABKA0SDwoHcmVtb3ZlZBgCIAEoDSKDAQoSTWNwT0F1dGhTdG9yZWREYXRhEhUKDXJlZnJlc2hfdG9rZW4YASABKAkSEQoJY2xpZW50X2lkGAIgASgJEhoKDWNsaWVudF9zZWNyZXQYAyABKAlIAIgBARIVCg1yZWRpcmVjdF91cmlzGAQgAygJQhAKDl9jbGllbnRfc2VjcmV0Ik4KBUZyYW1lEgoKAmlkGAEgASgJEg4KBm1ldGhvZBgCIAEoCRIMCgRkYXRhGAMgASgMEgwKBGtpbmQYBCABKAUSDQoFZXJyb3IYBSABKAkiBwoFRW1wdHkiIwoNQmlkaVJlcXVlc3RJZBISCgpyZXF1ZXN0X2lkGAEgASgJKogBCh1BcHBsaWVkQWdlbnRDaGFuZ2VfQ2hhbmdlVHlwZRIbChdDSEFOR0VfVFlQRV9VTlNQRUNJRklFRBAAEhcKE0NIQU5HRV9UWVBFX0NSRUFURUQQARIYChRDSEFOR0VfVFlQRV9NT0RJRklFRBACEhcKE0NIQU5HRV9UWVBFX0RFTEVURUQQAyqkAQoLTW91c2VCdXR0b24SHAoYTU9VU0VfQlVUVE9OX1VOU1BFQ0lGSUVEEAASFQoRTU9VU0VfQlVUVE9OX0xFRlQQARIWChJNT1VTRV9CVVRUT05fUklHSFQQAhIXChNNT1VTRV9CVVRUT05fTUlERExFEAMSFQoRTU9VU0VfQlVUVE9OX0JBQ0sQBBIYChRNT1VTRV9CVVRUT05fRk9SV0FSRBAFKp4BCg9TY3JvbGxEaXJlY3Rpb24SIAocU0NST0xMX0RJUkVDVElPTl9VTlNQRUNJRklFRBAAEhcKE1NDUk9MTF9ESVJFQ1RJT05fVVAQARIZChVTQ1JPTExfRElSRUNUSU9OX0RPV04QAhIZChVTQ1JPTExfRElSRUNUSU9OX0xFRlQQAxIaChZTQ1JPTExfRElSRUNUSU9OX1JJR0hUEAQqcAoQQ3Vyc29yUnVsZVNvdXJjZRIiCh5DVVJTT1JfUlVMRV9TT1VSQ0VfVU5TUEVDSUZJRUQQABIbChdDVVJTT1JfUlVMRV9TT1VSQ0VfVEVBTRABEhsKF0NVUlNPUl9SVUxFX1NPVVJDRV9VU0VSEAIqvAEKEkRpYWdub3N0aWNTZXZlcml0eRIjCh9ESUFHTk9TVElDX1NFVkVSSVRZX1VOU1BFQ0lGSUVEEAASHQoZRElBR05PU1RJQ19TRVZFUklUWV9FUlJPUhABEh8KG0RJQUdOT1NUSUNfU0VWRVJJVFlfV0FSTklORxACEiMKH0RJQUdOT1NUSUNfU0VWRVJJVFlfSU5GT1JNQVRJT04QAxIcChhESUFHTk9TVElDX1NFVkVSSVRZX0hJTlQQBCqcAQoNUmVjb3JkaW5nTW9kZRIeChpSRUNPUkRJTkdfTU9ERV9VTlNQRUNJRklFRBAAEiIKHlJFQ09SRElOR19NT0RFX1NUQVJUX1JFQ09SRElORxABEiEKHVJFQ09SRElOR19NT0RFX1NBVkVfUkVDT1JESU5HEAISJAogUkVDT1JESU5HX01PREVfRElTQ0FSRF9SRUNPUkRJTkcQAyqTAQofUmVxdWVzdGVkRmlsZVBhdGhSZWplY3RlZFJlYXNvbhIzCi9SRVFVRVNURURfRklMRV9QQVRIX1JFSkVDVEVEX1JFQVNPTl9VTlNQRUNJRklFRBAAEjsKN1JFUVVFU1RFRF9GSUxFX1BBVEhfUkVKRUNURURfUkVBU09OX1NMQVNIRVNfTk9UX0FMTE9XRUQQASqtAQoLUGFja2FnZVR5cGUSHAoYUEFDS0FHRV9UWVBFX1VOU1BFQ0lGSUVEEAASHwobUEFDS0FHRV9UWVBFX0NVUlNPUl9QUk9KRUNUEAESIAocUEFDS0FHRV9UWVBFX0NVUlNPUl9QRVJTT05BTBACEh0KGVBBQ0tBR0VfVFlQRV9DTEFVREVfU0tJTEwQAxIeChpQQUNLQUdFX1RZUEVfQ0xBVURFX1BMVUdJThAEKn0KElNhbmRib3hQb2xpY3lfVHlwZRIUChBUWVBFX1VOU1BFQ0lGSUVEEAASFgoSVFlQRV9JTlNFQ1VSRV9OT05FEAESHAoYVFlQRV9XT1JLU1BBQ0VfUkVBRFdSSVRFEAISGwoXVFlQRV9XT1JLU1BBQ0VfUkVBRE9OTFkQAypxCg9UaW1lb3V0QmVoYXZpb3ISIAocVElNRU9VVF9CRUhBVklPUl9VTlNQRUNJRklFRBAAEhsKF1RJTUVPVVRfQkVIQVZJT1JfQ0FOQ0VMEAESHwobVElNRU9VVF9CRUhBVklPUl9CQUNLR1JPVU5EEAIqeQoQU2hlbGxBYm9ydFJlYXNvbhIiCh5TSEVMTF9BQk9SVF9SRUFTT05fVU5TUEVDSUZJRUQQABIhCh1TSEVMTF9BQk9SVF9SRUFTT05fVVNFUl9BQk9SVBABEh4KGlNIRUxMX0FCT1JUX1JFQVNPTl9USU1FT1VUEAIqqgEKHEN1c3RvbVN1YmFnZW50UGVybWlzc2lvbk1vZGUSLworQ1VTVE9NX1NVQkFHRU5UX1BFUk1JU1NJT05fTU9ERV9VTlNQRUNJRklFRBAAEisKJ0NVU1RPTV9TVUJBR0VOVF9QRVJNSVNTSU9OX01PREVfREVGQVVMVBABEiwKKENVU1RPTV9TVUJBR0VOVF9QRVJNSVNTSU9OX01PREVfUkVBRE9OTFkQAiqVAQoKVG9kb1N0YXR1cxIbChdUT0RPX1NUQVRVU19VTlNQRUNJRklFRBAAEhcKE1RPRE9fU1RBVFVTX1BFTkRJTkcQARIbChdUT0RPX1NUQVRVU19JTl9QUk9HUkVTUxACEhkKFVRPRE9fU1RBVFVTX0NPTVBMRVRFRBADEhkKFVRPRE9fU1RBVFVTX0NBTkNFTExFRBAEKmYKCENsaWVudE9TEhkKFUNMSUVOVF9PU19VTlNQRUNJRklFRBAAEhUKEUNMSUVOVF9PU19XSU5ET1dTEAESEwoPQ0xJRU5UX09TX01BQ09TEAISEwoPQ0xJRU5UX09TX0xJTlVYEAMq7AEKHEFydGlmYWN0VXBsb2FkRGlzcGF0Y2hTdGF0dXMSLworQVJUSUZBQ1RfVVBMT0FEX0RJU1BBVENIX1NUQVRVU19VTlNQRUNJRklFRBAAEiwKKEFSVElGQUNUX1VQTE9BRF9ESVNQQVRDSF9TVEFUVVNfQUNDRVBURUQQARIsCihBUlRJRkFDVF9VUExPQURfRElTUEFUQ0hfU1RBVFVTX1JFSkVDVEVEEAISPwo7QVJUSUZBQ1RfVVBMT0FEX0RJU1BBVENIX1NUQVRVU19TS0lQUEVEX0FMUkVBRFlfSU5fUFJPR1JFU1MQAypXCgpGcmFtZV9LaW5kEhQKEEtJTkRfVU5TUEVDSUZJRUQQABIQCgxLSU5EX1JFUVVFU1QQARIRCg1LSU5EX1JFU1BPTlNFEAISDgoKS0lORF9FUlJPUhADKrACChdCdWdib3REZWVwbGlua0V2ZW50S2luZBIqCiZCVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9VTlNQRUNJRklFRBAAEiYKIkJVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX0NMSUNLRUQQARIzCi9CVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9IQU5ETEVEX0RJQUxPR19TSE9XThACEjMKL0JVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX0hBTkRMRURfQ0hBVF9DUkVBVEVEEAMSJAogQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfRVJST1IQBBIxCi1CVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9IQU5ETEVEX0ZJWF9JTl9XRUIQBTKHBAoMQWdlbnRTZXJ2aWNlEkEKA1J1bhIcLmFnZW50LnYxLkFnZW50Q2xpZW50TWVzc2FnZRocLmFnZW50LnYxLkFnZW50U2VydmVyTWVzc2FnZRI/CgZSdW5TU0USFy5hZ2VudC52MS5CaWRpUmVxdWVzdElkGhwuYWdlbnQudjEuQWdlbnRTZXJ2ZXJNZXNzYWdlEkQKCU5hbWVBZ2VudBIaLmFnZW50LnYxLk5hbWVBZ2VudFJlcXVlc3QaGy5hZ2VudC52MS5OYW1lQWdlbnRSZXNwb25zZRJWCg9HZXRVc2FibGVNb2RlbHMSIC5hZ2VudC52MS5HZXRVc2FibGVNb2RlbHNSZXF1ZXN0GiEuYWdlbnQudjEuR2V0VXNhYmxlTW9kZWxzUmVzcG9uc2USaAoVR2V0RGVmYXVsdE1vZGVsRm9yQ2xpEiYuYWdlbnQudjEuR2V0RGVmYXVsdE1vZGVsRm9yQ2xpUmVxdWVzdBonLmFnZW50LnYxLkdldERlZmF1bHRNb2RlbEZvckNsaVJlc3BvbnNlEmsKFkdldEFsbG93ZWRNb2RlbEludGVudHMSJy5hZ2VudC52MS5HZXRBbGxvd2VkTW9kZWxJbnRlbnRzUmVxdWVzdBooLmFnZW50LnYxLkdldEFsbG93ZWRNb2RlbEludGVudHNSZXNwb25zZTK1CAoOQ29udHJvbFNlcnZpY2USTQoMUmVhZFRleHRGaWxlEh0uYWdlbnQudjEuUmVhZFRleHRGaWxlUmVxdWVzdBoeLmFnZW50LnYxLlJlYWRUZXh0RmlsZVJlc3BvbnNlElAKDVdyaXRlVGV4dEZpbGUSHi5hZ2VudC52MS5Xcml0ZVRleHRGaWxlUmVxdWVzdBofLmFnZW50LnYxLldyaXRlVGV4dEZpbGVSZXNwb25zZRJTCg5SZWFkQmluYXJ5RmlsZRIfLmFnZW50LnYxLlJlYWRCaW5hcnlGaWxlUmVxdWVzdBogLmFnZW50LnYxLlJlYWRCaW5hcnlGaWxlUmVzcG9uc2USVgoPV3JpdGVCaW5hcnlGaWxlEiAuYWdlbnQudjEuV3JpdGVCaW5hcnlGaWxlUmVxdWVzdBohLmFnZW50LnYxLldyaXRlQmluYXJ5RmlsZVJlc3BvbnNlEm4KF0dldFdvcmtzcGFjZUNoYW5nZXNIYXNoEiguYWdlbnQudjEuR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXF1ZXN0GikuYWdlbnQudjEuR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXNwb25zZRJxChhSZWZyZXNoR2l0aHViQWNjZXNzVG9rZW4SKS5hZ2VudC52MS5SZWZyZXNoR2l0aHViQWNjZXNzVG9rZW5SZXF1ZXN0GiouYWdlbnQudjEuUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuUmVzcG9uc2USawoWV2FybVJlbW90ZUFjY2Vzc1NlcnZlchInLmFnZW50LnYxLldhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXJSZXF1ZXN0GiguYWdlbnQudjEuV2FybVJlbW90ZUFjY2Vzc1NlcnZlclJlc3BvbnNlElAKDUxpc3RBcnRpZmFjdHMSHi5hZ2VudC52MS5MaXN0QXJ0aWZhY3RzUmVxdWVzdBofLmFnZW50LnYxLkxpc3RBcnRpZmFjdHNSZXNwb25zZRJWCg9VcGxvYWRBcnRpZmFjdHMSIC5hZ2VudC52MS5VcGxvYWRBcnRpZmFjdHNSZXF1ZXN0GiEuYWdlbnQudjEuVXBsb2FkQXJ0aWZhY3RzUmVzcG9uc2USYgoTR2V0TWNwUmVmcmVzaFRva2VucxIkLmFnZW50LnYxLkdldE1jcFJlZnJlc2hUb2tlbnNSZXF1ZXN0GiUuYWdlbnQudjEuR2V0TWNwUmVmcmVzaFRva2Vuc1Jlc3BvbnNlEncKGlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzEisuYWdlbnQudjEuVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0GiwuYWdlbnQudjEuVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXNwb25zZTINCgtFeGVjU2VydmljZTJRCiJQcml2YXRlV29ya2VyQnJpZGdlRXh0ZXJuYWxTZXJ2aWNlEisKB0Nvbm5lY3QSDy5hZ2VudC52MS5GcmFtZRoPLmFnZW50LnYxLkZyYW1lMngKEExpZmVjeWNsZVNlcnZpY2USMQoNUmVzZXRJbnN0YW5jZRIPLmFnZW50LnYxLkVtcHR5Gg8uYWdlbnQudjEuRW1wdHkSMQoNUmVuZXdJbnN0YW5jZRIPLmFnZW50LnYxLkVtcHR5Gg8uYWdlbnQudjEuRW1wdHliBnByb3RvMw", - ); +export const file_agent: GenFile = /*@__PURE__*/ + fileDesc("CgthZ2VudC5wcm90bxIIYWdlbnQudjEicgoOR2xvYlRvb2xSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLkdsb2JUb29sU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuR2xvYlRvb2xFcnJvckgAQggKBnJlc3VsdCIeCg1HbG9iVG9vbEVycm9yEg0KBWVycm9yGAEgASgJIokBCg9HbG9iVG9vbFN1Y2Nlc3MSDwoHcGF0dGVybhgBIAEoCRIMCgRwYXRoGAIgASgJEg0KBWZpbGVzGAMgAygJEhMKC3RvdGFsX2ZpbGVzGAQgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBSABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBiABKAgiRgoMR2xvYlRvb2xDYWxsEgwKBGFyZ3MYASABKAwSKAoGcmVzdWx0GAIgASgLMhguYWdlbnQudjEuR2xvYlRvb2xSZXN1bHQibQoRUmVhZExpbnRzVG9vbENhbGwSKQoEYXJncxgBIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xBcmdzEi0KBnJlc3VsdBgCIAEoCzIdLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xSZXN1bHQiIgoRUmVhZExpbnRzVG9vbEFyZ3MSDQoFcGF0aHMYASADKAkigQEKE1JlYWRMaW50c1Rvb2xSZXN1bHQSMQoHc3VjY2VzcxgBIAEoCzIeLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xTdWNjZXNzSAASLQoFZXJyb3IYAiABKAsyHC5hZ2VudC52MS5SZWFkTGludHNUb29sRXJyb3JIAEIICgZyZXN1bHQiewoUUmVhZExpbnRzVG9vbFN1Y2Nlc3MSMwoQZmlsZV9kaWFnbm9zdGljcxgBIAMoCzIZLmFnZW50LnYxLkZpbGVEaWFnbm9zdGljcxITCgt0b3RhbF9maWxlcxgCIAEoBRIZChF0b3RhbF9kaWFnbm9zdGljcxgDIAEoBSJpCg9GaWxlRGlhZ25vc3RpY3MSDAoEcGF0aBgBIAEoCRItCgtkaWFnbm9zdGljcxgCIAMoCzIYLmFnZW50LnYxLkRpYWdub3N0aWNJdGVtEhkKEWRpYWdub3N0aWNzX2NvdW50GAMgASgFIqsBCg5EaWFnbm9zdGljSXRlbRIuCghzZXZlcml0eRgBIAEoDjIcLmFnZW50LnYxLkRpYWdub3N0aWNTZXZlcml0eRIoCgVyYW5nZRgCIAEoCzIZLmFnZW50LnYxLkRpYWdub3N0aWNSYW5nZRIPCgdtZXNzYWdlGAMgASgJEg4KBnNvdXJjZRgEIAEoCRIMCgRjb2RlGAUgASgJEhAKCGlzX3N0YWxlGAYgASgIIlUKD0RpYWdub3N0aWNSYW5nZRIhCgVzdGFydBgBIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uEh8KA2VuZBgCIAEoCzISLmFnZW50LnYxLlBvc2l0aW9uIisKElJlYWRMaW50c1Rvb2xFcnJvchIVCg1lcnJvcl9tZXNzYWdlGAEgASgJIj0KDE1jcFRvb2xFcnJvchINCgVlcnJvchgBIAEoCRIeChZyZWFkX3Rvb2xfZGVmX3JlbWluZGVyGAIgASgJItIBCg1NY3BUb29sUmVzdWx0EicKB3N1Y2Nlc3MYASABKAsyFC5hZ2VudC52MS5NY3BTdWNjZXNzSAASJwoFZXJyb3IYAiABKAsyFi5hZ2VudC52MS5NY3BUb29sRXJyb3JIABIpCghyZWplY3RlZBgDIAEoCzIVLmFnZW50LnYxLk1jcFJlamVjdGVkSAASOgoRcGVybWlzc2lvbl9kZW5pZWQYBCABKAsyHS5hZ2VudC52MS5NY3BQZXJtaXNzaW9uRGVuaWVkSABCCAoGcmVzdWx0IoEBCgtNY3BUb29sQ2FsbBIfCgRhcmdzGAEgASgLMhEuYWdlbnQudjEuTWNwQXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5NY3BUb29sUmVzdWx0EhgKC2Rlc2NyaXB0aW9uGAMgASgJSACIAQFCDgoMX2Rlc2NyaXB0aW9uIm0KEVNlbVNlYXJjaFRvb2xDYWxsEikKBGFyZ3MYASABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQXJncxItCgZyZXN1bHQYAiABKAsyHS5hZ2VudC52MS5TZW1TZWFyY2hUb29sUmVzdWx0IlMKEVNlbVNlYXJjaFRvb2xBcmdzEg0KBXF1ZXJ5GAEgASgJEhoKEnRhcmdldF9kaXJlY3RvcmllcxgCIAMoCRITCgtleHBsYW5hdGlvbhgDIAEoCSKBAQoTU2VtU2VhcmNoVG9vbFJlc3VsdBIxCgdzdWNjZXNzGAEgASgLMh4uYWdlbnQudjEuU2VtU2VhcmNoVG9vbFN1Y2Nlc3NIABItCgVlcnJvchgCIAEoCzIcLmFnZW50LnYxLlNlbVNlYXJjaFRvb2xFcnJvckgAQggKBnJlc3VsdCI9ChRTZW1TZWFyY2hUb29sU3VjY2VzcxIPCgdyZXN1bHRzGAEgASgJEhQKDGNvZGVfcmVzdWx0cxgCIAMoDCIrChJTZW1TZWFyY2hUb29sRXJyb3ISFQoNZXJyb3JfbWVzc2FnZRgBIAEoCSKCAQoYTGlzdE1jcFJlc291cmNlc1Rvb2xDYWxsEjAKBGFyZ3MYASABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzRXhlY0FyZ3MSNAoGcmVzdWx0GAIgASgLMiQuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHQifwoXUmVhZE1jcFJlc291cmNlVG9vbENhbGwSLwoEYXJncxgBIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzEjMKBnJlc3VsdBgCIAEoCzIjLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNSZXN1bHQiWQoNRmV0Y2hUb29sQ2FsbBIhCgRhcmdzGAEgASgLMhMuYWdlbnQudjEuRmV0Y2hBcmdzEiUKBnJlc3VsdBgCIAEoCzIVLmFnZW50LnYxLkZldGNoUmVzdWx0Im4KFFJlY29yZFNjcmVlblRvb2xDYWxsEigKBGFyZ3MYASABKAsyGi5hZ2VudC52MS5SZWNvcmRTY3JlZW5BcmdzEiwKBnJlc3VsdBgCIAEoCzIcLmFnZW50LnYxLlJlY29yZFNjcmVlblJlc3VsdCJ3ChdXcml0ZVNoZWxsU3RkaW5Ub29sQ2FsbBIrCgRhcmdzGAEgASgLMh0uYWdlbnQudjEuV3JpdGVTaGVsbFN0ZGluQXJncxIvCgZyZXN1bHQYAiABKAsyHy5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5SZXN1bHQisQEKC1JlZmxlY3RBcmdzEiIKGnVuZXhwZWN0ZWRfYWN0aW9uX291dGNvbWVzGAEgASgJEh0KFXJlbGV2YW50X2luc3RydWN0aW9ucxgCIAEoCRIZChFzY2VuYXJpb19hbmFseXNpcxgDIAEoCRIaChJjcml0aWNhbF9zeW50aGVzaXMYBCABKAkSEgoKbmV4dF9zdGVwcxgFIAEoCRIUCgx0b29sX2NhbGxfaWQYBiABKAkibwoNUmVmbGVjdFJlc3VsdBIrCgdzdWNjZXNzGAEgASgLMhguYWdlbnQudjEuUmVmbGVjdFN1Y2Nlc3NIABInCgVlcnJvchgCIAEoCzIWLmFnZW50LnYxLlJlZmxlY3RFcnJvckgAQggKBnJlc3VsdCIQCg5SZWZsZWN0U3VjY2VzcyIdCgxSZWZsZWN0RXJyb3ISDQoFZXJyb3IYASABKAkiXwoPUmVmbGVjdFRvb2xDYWxsEiMKBGFyZ3MYASABKAsyFS5hZ2VudC52MS5SZWZsZWN0QXJncxInCgZyZXN1bHQYAiABKAsyFy5hZ2VudC52MS5SZWZsZWN0UmVzdWx0IlkKF1N0YXJ0R3JpbmRFeGVjdXRpb25BcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKTAQoZU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdBI3CgdzdWNjZXNzGAEgASgLMiQuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblN1Y2Nlc3NIABIzCgVlcnJvchgCIAEoCzIiLmFnZW50LnYxLlN0YXJ0R3JpbmRFeGVjdXRpb25FcnJvckgAQggKBnJlc3VsdCIcChpTdGFydEdyaW5kRXhlY3V0aW9uU3VjY2VzcyIpChhTdGFydEdyaW5kRXhlY3V0aW9uRXJyb3ISDQoFZXJyb3IYASABKAkigwEKG1N0YXJ0R3JpbmRFeGVjdXRpb25Ub29sQ2FsbBIvCgRhcmdzGAEgASgLMiEuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvbkFyZ3MSMwoGcmVzdWx0GAIgASgLMiMuYWdlbnQudjEuU3RhcnRHcmluZEV4ZWN1dGlvblJlc3VsdCJYChZTdGFydEdyaW5kUGxhbm5pbmdBcmdzEhgKC2V4cGxhbmF0aW9uGAEgASgJSACIAQESFAoMdG9vbF9jYWxsX2lkGAIgASgJQg4KDF9leHBsYW5hdGlvbiKQAQoYU3RhcnRHcmluZFBsYW5uaW5nUmVzdWx0EjYKB3N1Y2Nlc3MYASABKAsyIy5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzSAASMgoFZXJyb3IYAiABKAsyIS5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdFcnJvckgAQggKBnJlc3VsdCIbChlTdGFydEdyaW5kUGxhbm5pbmdTdWNjZXNzIigKF1N0YXJ0R3JpbmRQbGFubmluZ0Vycm9yEg0KBWVycm9yGAEgASgJIoABChpTdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbBIuCgRhcmdzGAEgASgLMiAuYWdlbnQudjEuU3RhcnRHcmluZFBsYW5uaW5nQXJncxIyCgZyZXN1bHQYAiABKAsyIi5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdSZXN1bHQinAEKCFRhc2tBcmdzEhMKC2Rlc2NyaXB0aW9uGAEgASgJEg4KBnByb21wdBgCIAEoCRItCg1zdWJhZ2VudF90eXBlGAMgASgLMhYuYWdlbnQudjEuU3ViYWdlbnRUeXBlEhIKBW1vZGVsGAQgASgJSACIAQESEwoGcmVzdW1lGAUgASgJSAGIAQFCCAoGX21vZGVsQgkKB19yZXN1bWUiqgEKC1Rhc2tTdWNjZXNzEjYKEmNvbnZlcnNhdGlvbl9zdGVwcxgBIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0ZXASFQoIYWdlbnRfaWQYAiABKAlIAIgBARIVCg1pc19iYWNrZ3JvdW5kGAMgASgIEhgKC2R1cmF0aW9uX21zGAQgASgESAGIAQFCCwoJX2FnZW50X2lkQg4KDF9kdXJhdGlvbl9tcyIaCglUYXNrRXJyb3ISDQoFZXJyb3IYASABKAkiZgoKVGFza1Jlc3VsdBIoCgdzdWNjZXNzGAEgASgLMhUuYWdlbnQudjEuVGFza1N1Y2Nlc3NIABIkCgVlcnJvchgCIAEoCzITLmFnZW50LnYxLlRhc2tFcnJvckgAQggKBnJlc3VsdCJWCgxUYXNrVG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLlRhc2tBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLlRhc2tSZXN1bHQiTAoRVGFza1Rvb2xDYWxsRGVsdGESNwoSaW50ZXJhY3Rpb25fdXBkYXRlGAEgASgLMhsuYWdlbnQudjEuSW50ZXJhY3Rpb25VcGRhdGUiyw8KCFRvb2xDYWxsEjIKD3NoZWxsX3Rvb2xfY2FsbBgBIAEoCzIXLmFnZW50LnYxLlNoZWxsVG9vbENhbGxIABI0ChBkZWxldGVfdG9vbF9jYWxsGAMgASgLMhguYWdlbnQudjEuRGVsZXRlVG9vbENhbGxIABIwCg5nbG9iX3Rvb2xfY2FsbBgEIAEoCzIWLmFnZW50LnYxLkdsb2JUb29sQ2FsbEgAEjAKDmdyZXBfdG9vbF9jYWxsGAUgASgLMhYuYWdlbnQudjEuR3JlcFRvb2xDYWxsSAASMAoOcmVhZF90b29sX2NhbGwYCCABKAsyFi5hZ2VudC52MS5SZWFkVG9vbENhbGxIABI/ChZ1cGRhdGVfdG9kb3NfdG9vbF9jYWxsGAkgASgLMh0uYWdlbnQudjEuVXBkYXRlVG9kb3NUb29sQ2FsbEgAEjsKFHJlYWRfdG9kb3NfdG9vbF9jYWxsGAogASgLMhsuYWdlbnQudjEuUmVhZFRvZG9zVG9vbENhbGxIABIwCg5lZGl0X3Rvb2xfY2FsbBgMIAEoCzIWLmFnZW50LnYxLkVkaXRUb29sQ2FsbEgAEiwKDGxzX3Rvb2xfY2FsbBgNIAEoCzIULmFnZW50LnYxLkxzVG9vbENhbGxIABI7ChRyZWFkX2xpbnRzX3Rvb2xfY2FsbBgOIAEoCzIbLmFnZW50LnYxLlJlYWRMaW50c1Rvb2xDYWxsSAASLgoNbWNwX3Rvb2xfY2FsbBgPIAEoCzIVLmFnZW50LnYxLk1jcFRvb2xDYWxsSAASOwoUc2VtX3NlYXJjaF90b29sX2NhbGwYECABKAsyGy5hZ2VudC52MS5TZW1TZWFyY2hUb29sQ2FsbEgAEj0KFWNyZWF0ZV9wbGFuX3Rvb2xfY2FsbBgRIAEoCzIcLmFnZW50LnYxLkNyZWF0ZVBsYW5Ub29sQ2FsbEgAEjsKFHdlYl9zZWFyY2hfdG9vbF9jYWxsGBIgASgLMhsuYWdlbnQudjEuV2ViU2VhcmNoVG9vbENhbGxIABIwCg50YXNrX3Rvb2xfY2FsbBgTIAEoCzIWLmFnZW50LnYxLlRhc2tUb29sQ2FsbEgAEkoKHGxpc3RfbWNwX3Jlc291cmNlc190b29sX2NhbGwYFCABKAsyIi5hZ2VudC52MS5MaXN0TWNwUmVzb3VyY2VzVG9vbENhbGxIABJIChtyZWFkX21jcF9yZXNvdXJjZV90b29sX2NhbGwYFSABKAsyIS5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VUb29sQ2FsbEgAEkYKGmFwcGx5X2FnZW50X2RpZmZfdG9vbF9jYWxsGBYgASgLMiAuYWdlbnQudjEuQXBwbHlBZ2VudERpZmZUb29sQ2FsbEgAEj8KFmFza19xdWVzdGlvbl90b29sX2NhbGwYFyABKAsyHS5hZ2VudC52MS5Bc2tRdWVzdGlvblRvb2xDYWxsSAASMgoPZmV0Y2hfdG9vbF9jYWxsGBggASgLMhcuYWdlbnQudjEuRmV0Y2hUb29sQ2FsbEgAEj0KFXN3aXRjaF9tb2RlX3Rvb2xfY2FsbBgZIAEoCzIcLmFnZW50LnYxLlN3aXRjaE1vZGVUb29sQ2FsbEgAEjsKFGV4YV9zZWFyY2hfdG9vbF9jYWxsGBogASgLMhsuYWdlbnQudjEuRXhhU2VhcmNoVG9vbENhbGxIABI5ChNleGFfZmV0Y2hfdG9vbF9jYWxsGBsgASgLMhouYWdlbnQudjEuRXhhRmV0Y2hUb29sQ2FsbEgAEkMKGGdlbmVyYXRlX2ltYWdlX3Rvb2xfY2FsbBgcIAEoCzIfLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VUb29sQ2FsbEgAEkEKF3JlY29yZF9zY3JlZW5fdG9vbF9jYWxsGB0gASgLMh4uYWdlbnQudjEuUmVjb3JkU2NyZWVuVG9vbENhbGxIABI/ChZjb21wdXRlcl91c2VfdG9vbF9jYWxsGB4gASgLMh0uYWdlbnQudjEuQ29tcHV0ZXJVc2VUb29sQ2FsbEgAEkgKG3dyaXRlX3NoZWxsX3N0ZGluX3Rvb2xfY2FsbBgfIAEoCzIhLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpblRvb2xDYWxsSAASNgoRcmVmbGVjdF90b29sX2NhbGwYICABKAsyGS5hZ2VudC52MS5SZWZsZWN0VG9vbENhbGxIABJOCh5zZXR1cF92bV9lbnZpcm9ubWVudF90b29sX2NhbGwYISABKAsyJC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRUb29sQ2FsbEgAEjoKE3RydW5jYXRlZF90b29sX2NhbGwYIiABKAsyGy5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEgAElAKH3N0YXJ0X2dyaW5kX2V4ZWN1dGlvbl90b29sX2NhbGwYIyABKAsyJS5hZ2VudC52MS5TdGFydEdyaW5kRXhlY3V0aW9uVG9vbENhbGxIABJOCh5zdGFydF9ncmluZF9wbGFubmluZ190b29sX2NhbGwYJCABKAsyJC5hZ2VudC52MS5TdGFydEdyaW5kUGxhbm5pbmdUb29sQ2FsbEgAQgYKBHRvb2wiFwoVVHJ1bmNhdGVkVG9vbENhbGxBcmdzIhoKGFRydW5jYXRlZFRvb2xDYWxsU3VjY2VzcyInChZUcnVuY2F0ZWRUb29sQ2FsbEVycm9yEg0KBWVycm9yGAEgASgJIo0BChdUcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdBI1CgdzdWNjZXNzGAEgASgLMiIuYWdlbnQudjEuVHJ1bmNhdGVkVG9vbENhbGxTdWNjZXNzSAASMQoFZXJyb3IYAiABKAsyIC5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbEVycm9ySABCCAoGcmVzdWx0IpQBChFUcnVuY2F0ZWRUb29sQ2FsbBIdChVvcmlnaW5hbF9zdGVwX2Jsb2JfaWQYASABKAwSLQoEYXJncxgCIAEoCzIfLmFnZW50LnYxLlRydW5jYXRlZFRvb2xDYWxsQXJncxIxCgZyZXN1bHQYAyABKAsyIS5hZ2VudC52MS5UcnVuY2F0ZWRUb29sQ2FsbFJlc3VsdCLRAQoNVG9vbENhbGxEZWx0YRI9ChVzaGVsbF90b29sX2NhbGxfZGVsdGEYASABKAsyHC5hZ2VudC52MS5TaGVsbFRvb2xDYWxsRGVsdGFIABI7ChR0YXNrX3Rvb2xfY2FsbF9kZWx0YRgCIAEoCzIbLmFnZW50LnYxLlRhc2tUb29sQ2FsbERlbHRhSAASOwoUZWRpdF90b29sX2NhbGxfZGVsdGEYAyABKAsyGy5hZ2VudC52MS5FZGl0VG9vbENhbGxEZWx0YUgAQgcKBWRlbHRhIrYBChBDb252ZXJzYXRpb25TdGVwEjcKEWFzc2lzdGFudF9tZXNzYWdlGAEgASgLMhouYWdlbnQudjEuQXNzaXN0YW50TWVzc2FnZUgAEicKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsSAASNQoQdGhpbmtpbmdfbWVzc2FnZRgDIAEoCzIZLmFnZW50LnYxLlRoaW5raW5nTWVzc2FnZUgAQgkKB21lc3NhZ2UigQQKEkNvbnZlcnNhdGlvbkFjdGlvbhI6ChN1c2VyX21lc3NhZ2VfYWN0aW9uGAEgASgLMhsuYWdlbnQudjEuVXNlck1lc3NhZ2VBY3Rpb25IABIvCg1yZXN1bWVfYWN0aW9uGAIgASgLMhYuYWdlbnQudjEuUmVzdW1lQWN0aW9uSAASLwoNY2FuY2VsX2FjdGlvbhgDIAEoCzIWLmFnZW50LnYxLkNhbmNlbEFjdGlvbkgAEjUKEHN1bW1hcml6ZV9hY3Rpb24YBCABKAsyGS5hZ2VudC52MS5TdW1tYXJpemVBY3Rpb25IABI8ChRzaGVsbF9jb21tYW5kX2FjdGlvbhgFIAEoCzIcLmFnZW50LnYxLlNoZWxsQ29tbWFuZEFjdGlvbkgAEjYKEXN0YXJ0X3BsYW5fYWN0aW9uGAYgASgLMhkuYWdlbnQudjEuU3RhcnRQbGFuQWN0aW9uSAASOgoTZXhlY3V0ZV9wbGFuX2FjdGlvbhgHIAEoCzIbLmFnZW50LnYxLkV4ZWN1dGVQbGFuQWN0aW9uSAASWgokYXN5bmNfYXNrX3F1ZXN0aW9uX2NvbXBsZXRpb25fYWN0aW9uGAggASgLMiouYWdlbnQudjEuQXN5bmNBc2tRdWVzdGlvbkNvbXBsZXRpb25BY3Rpb25IAEIICgZhY3Rpb24ivwEKEVVzZXJNZXNzYWdlQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0EikKHHNlbmRfdG9faW50ZXJhY3Rpb25fbGlzdGVuZXIYAyABKAhIAIgBAUIfCh1fc2VuZF90b19pbnRlcmFjdGlvbl9saXN0ZW5lciIOCgxDYW5jZWxBY3Rpb24iQQoMUmVzdW1lQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0IqABCiBBc3luY0Fza1F1ZXN0aW9uQ29tcGxldGlvbkFjdGlvbhIdChVvcmlnaW5hbF90b29sX2NhbGxfaWQYASABKAkSMAoNb3JpZ2luYWxfYXJncxgCIAEoCzIZLmFnZW50LnYxLkFza1F1ZXN0aW9uQXJncxIrCgZyZXN1bHQYAyABKAsyGy5hZ2VudC52MS5Bc2tRdWVzdGlvblJlc3VsdCIRCg9TdW1tYXJpemVBY3Rpb24iVAoSU2hlbGxDb21tYW5kQWN0aW9uEi0KDXNoZWxsX2NvbW1hbmQYASABKAsyFi5hZ2VudC52MS5TaGVsbENvbW1hbmQSDwoHZXhlY19pZBgCIAEoCSKCAQoPU3RhcnRQbGFuQWN0aW9uEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlEjEKD3JlcXVlc3RfY29udGV4dBgCIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Eg8KB2lzX3NwZWMYAyABKAgi4gEKEUV4ZWN1dGVQbGFuQWN0aW9uEjEKD3JlcXVlc3RfY29udGV4dBgBIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0Ei0KBHBsYW4YAiABKAsyGi5hZ2VudC52MS5Db252ZXJzYXRpb25QbGFuSACIAQESGgoNcGxhbl9maWxlX3VyaRgDIAEoCUgBiAEBEh4KEXBsYW5fZmlsZV9jb250ZW50GAQgASgJSAKIAQFCBwoFX3BsYW5CEAoOX3BsYW5fZmlsZV91cmlCFAoSX3BsYW5fZmlsZV9jb250ZW50IugCCgtVc2VyTWVzc2FnZRIMCgR0ZXh0GAEgASgJEhIKCm1lc3NhZ2VfaWQYAiABKAkSOAoQc2VsZWN0ZWRfY29udGV4dBgDIAEoCzIZLmFnZW50LnYxLlNlbGVjdGVkQ29udGV4dEgAiAEBEgwKBG1vZGUYBCABKAUSHQoQaXNfc2ltdWxhdGVkX21zZxgFIAEoCEgBiAEBEh8KEmJlc3Rfb2Zfbl9ncm91cF9pZBgGIAEoCUgCiAEBEigKG3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbhgHIAEoCEgDiAEBEhYKCXJpY2hfdGV4dBgIIAEoCUgEiAEBQhMKEV9zZWxlY3RlZF9jb250ZXh0QhMKEV9pc19zaW11bGF0ZWRfbXNnQhUKE19iZXN0X29mX25fZ3JvdXBfaWRCHgocX3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbkIMCgpfcmljaF90ZXh0IiAKEEFzc2lzdGFudE1lc3NhZ2USDAoEdGV4dBgBIAEoCSI0Cg9UaGlua2luZ01lc3NhZ2USDAoEdGV4dBgBIAEoCRITCgtkdXJhdGlvbl9tcxgCIAEoDSIfCgxTaGVsbENvbW1hbmQSDwoHY29tbWFuZBgBIAEoCSJACgtTaGVsbE91dHB1dBIOCgZzdGRvdXQYASABKAkSDgoGc3RkZXJyGAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBSKiAQoQQ29udmVyc2F0aW9uVHVybhJCChdhZ2VudF9jb252ZXJzYXRpb25fdHVybhgBIAEoCzIfLmFnZW50LnYxLkFnZW50Q29udmVyc2F0aW9uVHVybkgAEkIKF3NoZWxsX2NvbnZlcnNhdGlvbl90dXJuGAIgASgLMh8uYWdlbnQudjEuU2hlbGxDb252ZXJzYXRpb25UdXJuSABCBgoEdHVybiIgChBDb252ZXJzYXRpb25QbGFuEgwKBHBsYW4YASABKAkivQEKGUNvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmUSSwoXYWdlbnRfY29udmVyc2F0aW9uX3R1cm4YASABKAsyKC5hZ2VudC52MS5BZ2VudENvbnZlcnNhdGlvblR1cm5TdHJ1Y3R1cmVIABJLChdzaGVsbF9jb252ZXJzYXRpb25fdHVybhgCIAEoCzIoLmFnZW50LnYxLlNoZWxsQ29udmVyc2F0aW9uVHVyblN0cnVjdHVyZUgAQgYKBHR1cm4ilwEKFUFnZW50Q29udmVyc2F0aW9uVHVybhIrCgx1c2VyX21lc3NhZ2UYASABKAsyFS5hZ2VudC52MS5Vc2VyTWVzc2FnZRIpCgVzdGVwcxgCIAMoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0ZXASFwoKcmVxdWVzdF9pZBgDIAEoCUgAiAEBQg0KC19yZXF1ZXN0X2lkIm0KHkFnZW50Q29udmVyc2F0aW9uVHVyblN0cnVjdHVyZRIUCgx1c2VyX21lc3NhZ2UYASABKAwSDQoFc3RlcHMYAiADKAwSFwoKcmVxdWVzdF9pZBgDIAEoCUgAiAEBQg0KC19yZXF1ZXN0X2lkInMKFVNoZWxsQ29udmVyc2F0aW9uVHVybhItCg1zaGVsbF9jb21tYW5kGAEgASgLMhYuYWdlbnQudjEuU2hlbGxDb21tYW5kEisKDHNoZWxsX291dHB1dBgCIAEoCzIVLmFnZW50LnYxLlNoZWxsT3V0cHV0Ik0KHlNoZWxsQ29udmVyc2F0aW9uVHVyblN0cnVjdHVyZRIVCg1zaGVsbF9jb21tYW5kGAEgASgMEhQKDHNoZWxsX291dHB1dBgCIAEoDCImChNDb252ZXJzYXRpb25TdW1tYXJ5Eg8KB3N1bW1hcnkYASABKAkieAoaQ29udmVyc2F0aW9uU3VtbWFyeUFyY2hpdmUSGwoTc3VtbWFyaXplZF9tZXNzYWdlcxgBIAMoDBIPCgdzdW1tYXJ5GAIgASgJEhMKC3dpbmRvd190YWlsGAMgASgNEhcKD3N1bW1hcnlfbWVzc2FnZRgEIAEoDCJDChhDb252ZXJzYXRpb25Ub2tlbkRldGFpbHMSEwoLdXNlZF90b2tlbnMYASABKA0SEgoKbWF4X3Rva2VucxgCIAEoDSJfCglGaWxlU3RhdGUSFAoHY29udGVudBgBIAEoCUgAiAEBEhwKD2luaXRpYWxfY29udGVudBgCIAEoCUgBiAEBQgoKCF9jb250ZW50QhIKEF9pbml0aWFsX2NvbnRlbnQiaAoSRmlsZVN0YXRlU3RydWN0dXJlEhQKB2NvbnRlbnQYASABKAxIAIgBARIcCg9pbml0aWFsX2NvbnRlbnQYAiABKAxIAYgBAUIKCghfY29udGVudEISChBfaW5pdGlhbF9jb250ZW50IjcKClN0ZXBUaW1pbmcSEwoLZHVyYXRpb25fbXMYASABKAQSFAoMdGltZXN0YW1wX21zGAIgASgEIvYEChFDb252ZXJzYXRpb25TdGF0ZRIhChlyb290X3Byb21wdF9tZXNzYWdlc19qc29uGAEgAygJEikKBXR1cm5zGAggAygLMhouYWdlbnQudjEuQ29udmVyc2F0aW9uVHVybhIhCgV0b2RvcxgDIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEhoKEnBlbmRpbmdfdG9vbF9jYWxscxgEIAMoCRI5Cg10b2tlbl9kZXRhaWxzGAUgASgLMiIuYWdlbnQudjEuQ29udmVyc2F0aW9uVG9rZW5EZXRhaWxzEjMKB3N1bW1hcnkYBiABKAsyHS5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5SACIAQESLQoEcGxhbhgHIAEoCzIaLmFnZW50LnYxLkNvbnZlcnNhdGlvblBsYW5IAYgBARJCCg9zdW1tYXJ5X2FyY2hpdmUYCSABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5QXJjaGl2ZUgCiAEBEkAKC2ZpbGVfc3RhdGVzGAogAygLMisuYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGUuRmlsZVN0YXRlc0VudHJ5Ej4KEHN1bW1hcnlfYXJjaGl2ZXMYCyADKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdW1tYXJ5QXJjaGl2ZRpGCg9GaWxlU3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEiIKBXZhbHVlGAIgASgLMhMuYWdlbnQudjEuRmlsZVN0YXRlOgI4AUIKCghfc3VtbWFyeUIHCgVfcGxhbkISChBfc3VtbWFyeV9hcmNoaXZlIscBChZTdWJhZ2VudFBlcnNpc3RlZFN0YXRlEkAKEmNvbnZlcnNhdGlvbl9zdGF0ZRgBIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlEhwKFGNyZWF0ZWRfdGltZXN0YW1wX21zGAIgASgEEh4KFmxhc3RfdXNlZF90aW1lc3RhbXBfbXMYAyABKAQSLQoNc3ViYWdlbnRfdHlwZRgEIAEoCzIWLmFnZW50LnYxLlN1YmFnZW50VHlwZSK3BwoaQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUSEQoJdHVybnNfb2xkGAIgAygMEiEKGXJvb3RfcHJvbXB0X21lc3NhZ2VzX2pzb24YASADKAwSDQoFdHVybnMYCCADKAwSDQoFdG9kb3MYAyADKAwSGgoScGVuZGluZ190b29sX2NhbGxzGAQgAygJEjkKDXRva2VuX2RldGFpbHMYBSABKAsyIi5hZ2VudC52MS5Db252ZXJzYXRpb25Ub2tlbkRldGFpbHMSFAoHc3VtbWFyeRgGIAEoDEgAiAEBEhEKBHBsYW4YByABKAxIAYgBARIfChdwcmV2aW91c193b3Jrc3BhY2VfdXJpcxgJIAMoCRIRCgRtb2RlGAogASgFSAKIAQESHAoPc3VtbWFyeV9hcmNoaXZlGAsgASgMSAOIAQESSQoLZmlsZV9zdGF0ZXMYDCADKAsyNC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZS5GaWxlU3RhdGVzRW50cnkSTgoOZmlsZV9zdGF0ZXNfdjIYDyADKAsyNi5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZS5GaWxlU3RhdGVzVjJFbnRyeRIYChBzdW1tYXJ5X2FyY2hpdmVzGA0gAygMEioKDHR1cm5fdGltaW5ncxgOIAMoCzIULmFnZW50LnYxLlN0ZXBUaW1pbmcSUQoPc3ViYWdlbnRfc3RhdGVzGBAgAygLMjguYWdlbnQudjEuQ29udmVyc2F0aW9uU3RhdGVTdHJ1Y3R1cmUuU3ViYWdlbnRTdGF0ZXNFbnRyeRIaChJzZWxmX3N1bW1hcnlfY291bnQYESABKA0SEgoKcmVhZF9wYXRocxgSIAMoCRoxCg9GaWxlU3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgMOgI4ARpRChFGaWxlU3RhdGVzVjJFbnRyeRILCgNrZXkYASABKAkSKwoFdmFsdWUYAiABKAsyHC5hZ2VudC52MS5GaWxlU3RhdGVTdHJ1Y3R1cmU6AjgBGlcKE1N1YmFnZW50U3RhdGVzRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAuYWdlbnQudjEuU3ViYWdlbnRQZXJzaXN0ZWRTdGF0ZToCOAFCCgoIX3N1bW1hcnlCBwoFX3BsYW5CBwoFX21vZGVCEgoQX3N1bW1hcnlfYXJjaGl2ZSIRCg9UaGlua2luZ0RldGFpbHMiSAoRQXBpS2V5Q3JlZGVudGlhbHMSDwoHYXBpX2tleRgBIAEoCRIVCghiYXNlX3VybBgCIAEoCUgAiAEBQgsKCV9iYXNlX3VybCJJChBBenVyZUNyZWRlbnRpYWxzEg8KB2FwaV9rZXkYASABKAkSEAoIYmFzZV91cmwYAiABKAkSEgoKZGVwbG95bWVudBgDIAEoCSJ6ChJCZWRyb2NrQ3JlZGVudGlhbHMSEgoKYWNjZXNzX2tleRgBIAEoCRISCgpzZWNyZXRfa2V5GAIgASgJEg4KBnJlZ2lvbhgDIAEoCRIaCg1zZXNzaW9uX3Rva2VuGAQgASgJSACIAQFCEAoOX3Nlc3Npb25fdG9rZW4isQMKDE1vZGVsRGV0YWlscxIQCghtb2RlbF9pZBgBIAEoCRIYChBkaXNwbGF5X21vZGVsX2lkGAMgASgJEhQKDGRpc3BsYXlfbmFtZRgEIAEoCRIaChJkaXNwbGF5X25hbWVfc2hvcnQYBSABKAkSDwoHYWxpYXNlcxgGIAMoCRI4ChB0aGlua2luZ19kZXRhaWxzGAIgASgLMhkuYWdlbnQudjEuVGhpbmtpbmdEZXRhaWxzSAGIAQESFQoIbWF4X21vZGUYByABKAhIAogBARI6ChNhcGlfa2V5X2NyZWRlbnRpYWxzGAggASgLMhsuYWdlbnQudjEuQXBpS2V5Q3JlZGVudGlhbHNIABI3ChFhenVyZV9jcmVkZW50aWFscxgJIAEoCzIaLmFnZW50LnYxLkF6dXJlQ3JlZGVudGlhbHNIABI7ChNiZWRyb2NrX2NyZWRlbnRpYWxzGAogASgLMhwuYWdlbnQudjEuQmVkcm9ja0NyZWRlbnRpYWxzSABCDQoLY3JlZGVudGlhbHNCEwoRX3RoaW5raW5nX2RldGFpbHNCCwoJX21heF9tb2RlIrcCCg5SZXF1ZXN0ZWRNb2RlbBIQCghtb2RlbF9pZBgBIAEoCRIQCghtYXhfbW9kZRgCIAEoCBJACgpwYXJhbWV0ZXJzGAMgAygLMiwuYWdlbnQudjEuUmVxdWVzdGVkTW9kZWxfTW9kZWxQYXJhbWV0ZXJieXRlcxI6ChNhcGlfa2V5X2NyZWRlbnRpYWxzGAQgASgLMhsuYWdlbnQudjEuQXBpS2V5Q3JlZGVudGlhbHNIABI3ChFhenVyZV9jcmVkZW50aWFscxgFIAEoCzIaLmFnZW50LnYxLkF6dXJlQ3JlZGVudGlhbHNIABI7ChNiZWRyb2NrX2NyZWRlbnRpYWxzGAYgASgLMhwuYWdlbnQudjEuQmVkcm9ja0NyZWRlbnRpYWxzSABCDQoLY3JlZGVudGlhbHMiPwoiUmVxdWVzdGVkTW9kZWxfTW9kZWxQYXJhbWV0ZXJieXRlcxIKCgJpZBgBIAEoCRINCgV2YWx1ZRgCIAEoCSK5BAoPQWdlbnRSdW5SZXF1ZXN0EkAKEmNvbnZlcnNhdGlvbl9zdGF0ZRgBIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlEiwKBmFjdGlvbhgCIAEoCzIcLmFnZW50LnYxLkNvbnZlcnNhdGlvbkFjdGlvbhItCg1tb2RlbF9kZXRhaWxzGAMgASgLMhYuYWdlbnQudjEuTW9kZWxEZXRhaWxzEjYKD3JlcXVlc3RlZF9tb2RlbBgJIAEoCzIYLmFnZW50LnYxLlJlcXVlc3RlZE1vZGVsSACIAQESJQoJbWNwX3Rvb2xzGAQgASgLMhIuYWdlbnQudjEuTWNwVG9vbHMSHAoPY29udmVyc2F0aW9uX2lkGAUgASgJSAGIAQESRAoXbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnMYBiABKAsyHi5hZ2VudC52MS5NY3BGaWxlU3lzdGVtT3B0aW9uc0gCiAEBEjIKDXNraWxsX29wdGlvbnMYByABKAsyFi5hZ2VudC52MS5Ta2lsbE9wdGlvbnNIA4gBARIhChRjdXN0b21fc3lzdGVtX3Byb21wdBgIIAEoCUgEiAEBQhIKEF9yZXF1ZXN0ZWRfbW9kZWxCEgoQX2NvbnZlcnNhdGlvbl9pZEIaChhfbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnNCEAoOX3NraWxsX29wdGlvbnNCFwoVX2N1c3RvbV9zeXN0ZW1fcHJvbXB0Ih8KD1RleHREZWx0YVVwZGF0ZRIMCgR0ZXh0GAEgASgJImYKFVRvb2xDYWxsU3RhcnRlZFVwZGF0ZRIPCgdjYWxsX2lkGAEgASgJEiUKCXRvb2xfY2FsbBgCIAEoCzISLmFnZW50LnYxLlRvb2xDYWxsEhUKDW1vZGVsX2NhbGxfaWQYAyABKAkiaAoXVG9vbENhbGxDb21wbGV0ZWRVcGRhdGUSDwoHY2FsbF9pZBgBIAEoCRIlCgl0b29sX2NhbGwYAiABKAsyEi5hZ2VudC52MS5Ub29sQ2FsbBIVCg1tb2RlbF9jYWxsX2lkGAMgASgJIm8KE1Rvb2xDYWxsRGVsdGFVcGRhdGUSDwoHY2FsbF9pZBgBIAEoCRIwCg90b29sX2NhbGxfZGVsdGEYAiABKAsyFy5hZ2VudC52MS5Ub29sQ2FsbERlbHRhEhUKDW1vZGVsX2NhbGxfaWQYAyABKAkifwoVUGFydGlhbFRvb2xDYWxsVXBkYXRlEg8KB2NhbGxfaWQYASABKAkSJQoJdG9vbF9jYWxsGAIgASgLMhIuYWdlbnQudjEuVG9vbENhbGwSFwoPYXJnc190ZXh0X2RlbHRhGAMgASgJEhUKDW1vZGVsX2NhbGxfaWQYBCABKAkiIwoTVGhpbmtpbmdEZWx0YVVwZGF0ZRIMCgR0ZXh0GAEgASgJIjcKF1RoaW5raW5nQ29tcGxldGVkVXBkYXRlEhwKFHRoaW5raW5nX2R1cmF0aW9uX21zGAEgASgFIiIKEFRva2VuRGVsdGFVcGRhdGUSDgoGdG9rZW5zGAEgASgFIiAKDVN1bW1hcnlVcGRhdGUSDwoHc3VtbWFyeRgBIAEoCSIWChRTdW1tYXJ5U3RhcnRlZFVwZGF0ZSIRCg9IZWFydGJlYXRVcGRhdGUiGAoWU3VtbWFyeUNvbXBsZXRlZFVwZGF0ZSLXAQoWU2hlbGxPdXRwdXREZWx0YVVwZGF0ZRItCgZzdGRvdXQYASABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZG91dEgAEi0KBnN0ZGVychgCIAEoCzIbLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RkZXJySAASKQoEZXhpdBgDIAEoCzIZLmFnZW50LnYxLlNoZWxsU3RyZWFtRXhpdEgAEisKBXN0YXJ0GAQgASgLMhouYWdlbnQudjEuU2hlbGxTdHJlYW1TdGFydEgAQgcKBWV2ZW50IhEKD1R1cm5FbmRlZFVwZGF0ZSJIChlVc2VyTWVzc2FnZUFwcGVuZGVkVXBkYXRlEisKDHVzZXJfbWVzc2FnZRgBIAEoCzIVLmFnZW50LnYxLlVzZXJNZXNzYWdlIiQKEVN0ZXBTdGFydGVkVXBkYXRlEg8KB3N0ZXBfaWQYASABKAQiQAoTU3RlcENvbXBsZXRlZFVwZGF0ZRIPCgdzdGVwX2lkGAEgASgEEhgKEHN0ZXBfZHVyYXRpb25fbXMYAiABKAMi7wcKEUludGVyYWN0aW9uVXBkYXRlEi8KCnRleHRfZGVsdGEYASABKAsyGS5hZ2VudC52MS5UZXh0RGVsdGFVcGRhdGVIABI8ChFwYXJ0aWFsX3Rvb2xfY2FsbBgHIAEoCzIfLmFnZW50LnYxLlBhcnRpYWxUb29sQ2FsbFVwZGF0ZUgAEjgKD3Rvb2xfY2FsbF9kZWx0YRgPIAEoCzIdLmFnZW50LnYxLlRvb2xDYWxsRGVsdGFVcGRhdGVIABI8ChF0b29sX2NhbGxfc3RhcnRlZBgCIAEoCzIfLmFnZW50LnYxLlRvb2xDYWxsU3RhcnRlZFVwZGF0ZUgAEkAKE3Rvb2xfY2FsbF9jb21wbGV0ZWQYAyABKAsyIS5hZ2VudC52MS5Ub29sQ2FsbENvbXBsZXRlZFVwZGF0ZUgAEjcKDnRoaW5raW5nX2RlbHRhGAQgASgLMh0uYWdlbnQudjEuVGhpbmtpbmdEZWx0YVVwZGF0ZUgAEj8KEnRoaW5raW5nX2NvbXBsZXRlZBgFIAEoCzIhLmFnZW50LnYxLlRoaW5raW5nQ29tcGxldGVkVXBkYXRlSAASRAoVdXNlcl9tZXNzYWdlX2FwcGVuZGVkGAYgASgLMiMuYWdlbnQudjEuVXNlck1lc3NhZ2VBcHBlbmRlZFVwZGF0ZUgAEjEKC3Rva2VuX2RlbHRhGAggASgLMhouYWdlbnQudjEuVG9rZW5EZWx0YVVwZGF0ZUgAEioKB3N1bW1hcnkYCSABKAsyFy5hZ2VudC52MS5TdW1tYXJ5VXBkYXRlSAASOQoPc3VtbWFyeV9zdGFydGVkGAogASgLMh4uYWdlbnQudjEuU3VtbWFyeVN0YXJ0ZWRVcGRhdGVIABI9ChFzdW1tYXJ5X2NvbXBsZXRlZBgLIAEoCzIgLmFnZW50LnYxLlN1bW1hcnlDb21wbGV0ZWRVcGRhdGVIABI+ChJzaGVsbF9vdXRwdXRfZGVsdGEYDCABKAsyIC5hZ2VudC52MS5TaGVsbE91dHB1dERlbHRhVXBkYXRlSAASLgoJaGVhcnRiZWF0GA0gASgLMhkuYWdlbnQudjEuSGVhcnRiZWF0VXBkYXRlSAASLwoKdHVybl9lbmRlZBgOIAEoCzIZLmFnZW50LnYxLlR1cm5FbmRlZFVwZGF0ZUgAEjMKDHN0ZXBfc3RhcnRlZBgQIAEoCzIbLmFnZW50LnYxLlN0ZXBTdGFydGVkVXBkYXRlSAASNwoOc3RlcF9jb21wbGV0ZWQYESABKAsyHS5hZ2VudC52MS5TdGVwQ29tcGxldGVkVXBkYXRlSABCCQoHbWVzc2FnZSKaBAoQSW50ZXJhY3Rpb25RdWVyeRIKCgJpZBgBIAEoDRJDChh3ZWJfc2VhcmNoX3JlcXVlc3RfcXVlcnkYAiABKAsyHy5hZ2VudC52MS5XZWJTZWFyY2hSZXF1ZXN0UXVlcnlIABJPCh5hc2tfcXVlc3Rpb25faW50ZXJhY3Rpb25fcXVlcnkYAyABKAsyJS5hZ2VudC52MS5Bc2tRdWVzdGlvbkludGVyYWN0aW9uUXVlcnlIABJFChlzd2l0Y2hfbW9kZV9yZXF1ZXN0X3F1ZXJ5GAQgASgLMiAuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RRdWVyeUgAEkMKGGV4YV9zZWFyY2hfcmVxdWVzdF9xdWVyeRgFIAEoCzIfLmFnZW50LnYxLkV4YVNlYXJjaFJlcXVlc3RRdWVyeUgAEkEKF2V4YV9mZXRjaF9yZXF1ZXN0X3F1ZXJ5GAYgASgLMh4uYWdlbnQudjEuRXhhRmV0Y2hSZXF1ZXN0UXVlcnlIABJFChljcmVhdGVfcGxhbl9yZXF1ZXN0X3F1ZXJ5GAcgASgLMiAuYWdlbnQudjEuQ3JlYXRlUGxhblJlcXVlc3RRdWVyeUgAEkUKGXNldHVwX3ZtX2Vudmlyb25tZW50X2FyZ3MYCCABKAsyIC5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRBcmdzSABCBwoFcXVlcnkixgQKE0ludGVyYWN0aW9uUmVzcG9uc2USCgoCaWQYASABKA0SSQobd2ViX3NlYXJjaF9yZXF1ZXN0X3Jlc3BvbnNlGAIgASgLMiIuYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlSAASVQohYXNrX3F1ZXN0aW9uX2ludGVyYWN0aW9uX3Jlc3BvbnNlGAMgASgLMiguYWdlbnQudjEuQXNrUXVlc3Rpb25JbnRlcmFjdGlvblJlc3BvbnNlSAASSwocc3dpdGNoX21vZGVfcmVxdWVzdF9yZXNwb25zZRgEIAEoCzIjLmFnZW50LnYxLlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VIABJJChtleGFfc2VhcmNoX3JlcXVlc3RfcmVzcG9uc2UYBSABKAsyIi5hZ2VudC52MS5FeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VIABJHChpleGFfZmV0Y2hfcmVxdWVzdF9yZXNwb25zZRgGIAEoCzIhLmFnZW50LnYxLkV4YUZldGNoUmVxdWVzdFJlc3BvbnNlSAASSwocY3JlYXRlX3BsYW5fcmVxdWVzdF9yZXNwb25zZRgHIAEoCzIjLmFnZW50LnYxLkNyZWF0ZVBsYW5SZXF1ZXN0UmVzcG9uc2VIABJJChtzZXR1cF92bV9lbnZpcm9ubWVudF9yZXN1bHQYCCABKAsyIi5hZ2VudC52MS5TZXR1cFZtRW52aXJvbm1lbnRSZXN1bHRIAEIICgZyZXN1bHQiXAobQXNrUXVlc3Rpb25JbnRlcmFjdGlvblF1ZXJ5EicKBGFyZ3MYASABKAsyGS5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3MSFAoMdG9vbF9jYWxsX2lkGAIgASgJIk0KHkFza1F1ZXN0aW9uSW50ZXJhY3Rpb25SZXNwb25zZRIrCgZyZXN1bHQYASABKAsyGy5hZ2VudC52MS5Bc2tRdWVzdGlvblJlc3VsdCIRCg9DbGllbnRIZWFydGJlYXQixgQKDlByZXdhcm1SZXF1ZXN0Ei0KDW1vZGVsX2RldGFpbHMYASABKAsyFi5hZ2VudC52MS5Nb2RlbERldGFpbHMSNgoPcmVxdWVzdGVkX21vZGVsGAkgASgLMhguYWdlbnQudjEuUmVxdWVzdGVkTW9kZWxIAIgBARIcCg9jb252ZXJzYXRpb25faWQYAiABKAlIAYgBARJAChJjb252ZXJzYXRpb25fc3RhdGUYAyABKAsyJC5hZ2VudC52MS5Db252ZXJzYXRpb25TdGF0ZVN0cnVjdHVyZRIlCgltY3BfdG9vbHMYBCABKAsyEi5hZ2VudC52MS5NY3BUb29scxJEChdtY3BfZmlsZV9zeXN0ZW1fb3B0aW9ucxgFIAEoCzIeLmFnZW50LnYxLk1jcEZpbGVTeXN0ZW1PcHRpb25zSAKIAQESHwoSYmVzdF9vZl9uX2dyb3VwX2lkGAYgASgJSAOIAQESKAobdHJ5X3VzZV9iZXN0X29mX25fcHJvbW90aW9uGAcgASgISASIAQESIQoUY3VzdG9tX3N5c3RlbV9wcm9tcHQYCCABKAlIBYgBAUISChBfcmVxdWVzdGVkX21vZGVsQhIKEF9jb252ZXJzYXRpb25faWRCGgoYX21jcF9maWxlX3N5c3RlbV9vcHRpb25zQhUKE19iZXN0X29mX25fZ3JvdXBfaWRCHgocX3RyeV91c2VfYmVzdF9vZl9uX3Byb21vdGlvbkIXChVfY3VzdG9tX3N5c3RlbV9wcm9tcHQiHQoPRXhlY1NlcnZlckFib3J0EgoKAmlkGAEgASgNIlEKGEV4ZWNTZXJ2ZXJDb250cm9sTWVzc2FnZRIqCgVhYm9ydBgBIAEoCzIZLmFnZW50LnYxLkV4ZWNTZXJ2ZXJBYm9ydEgAQgkKB21lc3NhZ2Ui+AMKEkFnZW50Q2xpZW50TWVzc2FnZRIwCgtydW5fcmVxdWVzdBgBIAEoCzIZLmFnZW50LnYxLkFnZW50UnVuUmVxdWVzdEgAEjoKE2V4ZWNfY2xpZW50X21lc3NhZ2UYAiABKAsyGy5hZ2VudC52MS5FeGVjQ2xpZW50TWVzc2FnZUgAEkkKG2V4ZWNfY2xpZW50X2NvbnRyb2xfbWVzc2FnZRgFIAEoCzIiLmFnZW50LnYxLkV4ZWNDbGllbnRDb250cm9sTWVzc2FnZUgAEjYKEWt2X2NsaWVudF9tZXNzYWdlGAMgASgLMhkuYWdlbnQudjEuS3ZDbGllbnRNZXNzYWdlSAASOwoTY29udmVyc2F0aW9uX2FjdGlvbhgEIAEoCzIcLmFnZW50LnYxLkNvbnZlcnNhdGlvbkFjdGlvbkgAEj0KFGludGVyYWN0aW9uX3Jlc3BvbnNlGAYgASgLMh0uYWdlbnQudjEuSW50ZXJhY3Rpb25SZXNwb25zZUgAEjUKEGNsaWVudF9oZWFydGJlYXQYByABKAsyGS5hZ2VudC52MS5DbGllbnRIZWFydGJlYXRIABIzCg9wcmV3YXJtX3JlcXVlc3QYCCABKAsyGC5hZ2VudC52MS5QcmV3YXJtUmVxdWVzdEgAQgkKB21lc3NhZ2UiogMKEkFnZW50U2VydmVyTWVzc2FnZRI5ChJpbnRlcmFjdGlvbl91cGRhdGUYASABKAsyGy5hZ2VudC52MS5JbnRlcmFjdGlvblVwZGF0ZUgAEjoKE2V4ZWNfc2VydmVyX21lc3NhZ2UYAiABKAsyGy5hZ2VudC52MS5FeGVjU2VydmVyTWVzc2FnZUgAEkkKG2V4ZWNfc2VydmVyX2NvbnRyb2xfbWVzc2FnZRgFIAEoCzIiLmFnZW50LnYxLkV4ZWNTZXJ2ZXJDb250cm9sTWVzc2FnZUgAEk4KHmNvbnZlcnNhdGlvbl9jaGVja3BvaW50X3VwZGF0ZRgDIAEoCzIkLmFnZW50LnYxLkNvbnZlcnNhdGlvblN0YXRlU3RydWN0dXJlSAASNgoRa3Zfc2VydmVyX21lc3NhZ2UYBCABKAsyGS5hZ2VudC52MS5LdlNlcnZlck1lc3NhZ2VIABI3ChFpbnRlcmFjdGlvbl9xdWVyeRgHIAEoCzIaLmFnZW50LnYxLkludGVyYWN0aW9uUXVlcnlIAEIJCgdtZXNzYWdlIigKEE5hbWVBZ2VudFJlcXVlc3QSFAoMdXNlcl9tZXNzYWdlGAEgASgJIiEKEU5hbWVBZ2VudFJlc3BvbnNlEgwKBG5hbWUYASABKAkiMgoWR2V0VXNhYmxlTW9kZWxzUmVxdWVzdBIYChBjdXN0b21fbW9kZWxfaWRzGAEgAygJIkEKF0dldFVzYWJsZU1vZGVsc1Jlc3BvbnNlEiYKBm1vZGVscxgBIAMoCzIWLmFnZW50LnYxLk1vZGVsRGV0YWlscyIeChxHZXREZWZhdWx0TW9kZWxGb3JDbGlSZXF1ZXN0IkYKHUdldERlZmF1bHRNb2RlbEZvckNsaVJlc3BvbnNlEiUKBW1vZGVsGAEgASgLMhYuYWdlbnQudjEuTW9kZWxEZXRhaWxzIh8KHUdldEFsbG93ZWRNb2RlbEludGVudHNSZXF1ZXN0IjcKHkdldEFsbG93ZWRNb2RlbEludGVudHNSZXNwb25zZRIVCg1tb2RlbF9pbnRlbnRzGAEgAygJIpcCChNJZGVFZGl0b3JzU3RhdGVGaWxlEhUKDXJlbGF0aXZlX3BhdGgYASABKAkSFQoNYWJzb2x1dGVfcGF0aBgCIAEoCRIhChRpc19jdXJyZW50bHlfZm9jdXNlZBgDIAEoCEgAiAEBEiAKE2N1cnJlbnRfbGluZV9udW1iZXIYBCABKAVIAYgBARIeChFjdXJyZW50X2xpbmVfdGV4dBgFIAEoCUgCiAEBEhcKCmxpbmVfY291bnQYBiABKAVIA4gBAUIXChVfaXNfY3VycmVudGx5X2ZvY3VzZWRCFgoUX2N1cnJlbnRfbGluZV9udW1iZXJCFAoSX2N1cnJlbnRfbGluZV90ZXh0Qg0KC19saW5lX2NvdW50IlMKE0lkZUVkaXRvcnNTdGF0ZUxpdGUSPAoVcmVjZW50bHlfdmlld2VkX2ZpbGVzGAEgAygLMh0uYWdlbnQudjEuSWRlRWRpdG9yc1N0YXRlRmlsZSJ0ChZBcHBseUFnZW50RGlmZlRvb2xDYWxsEioKBGFyZ3MYASABKAsyHC5hZ2VudC52MS5BcHBseUFnZW50RGlmZkFyZ3MSLgoGcmVzdWx0GAIgASgLMh4uYWdlbnQudjEuQXBwbHlBZ2VudERpZmZSZXN1bHQiJgoSQXBwbHlBZ2VudERpZmZBcmdzEhAKCGFnZW50X2lkGAEgASgJIoQBChRBcHBseUFnZW50RGlmZlJlc3VsdBIyCgdzdWNjZXNzGAEgASgLMh8uYWdlbnQudjEuQXBwbHlBZ2VudERpZmZTdWNjZXNzSAASLgoFZXJyb3IYAiABKAsyHS5hZ2VudC52MS5BcHBseUFnZW50RGlmZkVycm9ySABCCAoGcmVzdWx0Ik4KFUFwcGx5QWdlbnREaWZmU3VjY2VzcxI1Cg9hcHBsaWVkX2NoYW5nZXMYASADKAsyHC5hZ2VudC52MS5BcHBsaWVkQWdlbnRDaGFuZ2Ui6QEKEkFwcGxpZWRBZ2VudENoYW5nZRIMCgRwYXRoGAEgASgJEhMKC2NoYW5nZV90eXBlGAIgASgFEhsKDmJlZm9yZV9jb250ZW50GAMgASgJSACIAQESGgoNYWZ0ZXJfY29udGVudBgEIAEoCUgBiAEBEhIKBWVycm9yGAUgASgJSAKIAQESHgoRbWVzc2FnZV9mb3JfbW9kZWwYBiABKAlIA4gBAUIRCg9fYmVmb3JlX2NvbnRlbnRCEAoOX2FmdGVyX2NvbnRlbnRCCAoGX2Vycm9yQhQKEl9tZXNzYWdlX2Zvcl9tb2RlbCJbChNBcHBseUFnZW50RGlmZkVycm9yEg0KBWVycm9yGAEgASgJEjUKD2FwcGxpZWRfY2hhbmdlcxgCIAMoCzIcLmFnZW50LnYxLkFwcGxpZWRBZ2VudENoYW5nZSJrChNBc2tRdWVzdGlvblRvb2xDYWxsEicKBGFyZ3MYASABKAsyGS5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3MSKwoGcmVzdWx0GAIgASgLMhsuYWdlbnQudjEuQXNrUXVlc3Rpb25SZXN1bHQijwEKD0Fza1F1ZXN0aW9uQXJncxINCgV0aXRsZRgBIAEoCRI1CglxdWVzdGlvbnMYAiADKAsyIi5hZ2VudC52MS5Bc2tRdWVzdGlvbkFyZ3NfUXVlc3Rpb24SEQoJcnVuX2FzeW5jGAUgASgIEiMKG2FzeW5jX29yaWdpbmFsX3Rvb2xfY2FsbF9pZBgGIAEoCSKBAQoYQXNrUXVlc3Rpb25BcmdzX1F1ZXN0aW9uEgoKAmlkGAEgASgJEg4KBnByb21wdBgCIAEoCRIxCgdvcHRpb25zGAMgAygLMiAuYWdlbnQudjEuQXNrUXVlc3Rpb25BcmdzX09wdGlvbhIWCg5hbGxvd19tdWx0aXBsZRgEIAEoCCIzChZBc2tRdWVzdGlvbkFyZ3NfT3B0aW9uEgoKAmlkGAEgASgJEg0KBWxhYmVsGAIgASgJIhIKEEFza1F1ZXN0aW9uQXN5bmMi2wEKEUFza1F1ZXN0aW9uUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5Bc2tRdWVzdGlvblN1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLkFza1F1ZXN0aW9uRXJyb3JIABIxCghyZWplY3RlZBgDIAEoCzIdLmFnZW50LnYxLkFza1F1ZXN0aW9uUmVqZWN0ZWRIABIrCgVhc3luYxgEIAEoCzIaLmFnZW50LnYxLkFza1F1ZXN0aW9uQXN5bmNIAEIICgZyZXN1bHQiSgoSQXNrUXVlc3Rpb25TdWNjZXNzEjQKB2Fuc3dlcnMYASADKAsyIy5hZ2VudC52MS5Bc2tRdWVzdGlvblN1Y2Nlc3NfQW5zd2VyIk0KGUFza1F1ZXN0aW9uU3VjY2Vzc19BbnN3ZXISEwoLcXVlc3Rpb25faWQYASABKAkSGwoTc2VsZWN0ZWRfb3B0aW9uX2lkcxgCIAMoCSIpChBBc2tRdWVzdGlvbkVycm9yEhUKDWVycm9yX21lc3NhZ2UYASABKAkiJQoTQXNrUXVlc3Rpb25SZWplY3RlZBIOCgZyZWFzb24YASABKAki/QUKGEJhY2tncm91bmRTaGVsbFNwYXduQXJncxIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEhQKDHRvb2xfY2FsbF9pZBgDIAEoCRI7Cg5wYXJzaW5nX3Jlc3VsdBgEIAEoCzIjLmFnZW50LnYxLlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHQSNAoOc2FuZGJveF9wb2xpY3kYBSABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQESJQodZW5hYmxlX3dyaXRlX3NoZWxsX3N0ZGluX3Rvb2wYBiABKAgSGAoLZGVzY3JpcHRpb24YByABKAlIAYgBARJBChFjbGFzc2lmaWVyX3Jlc3VsdBgIIAEoCzIhLmFnZW50LnYxLkNvbW1hbmRDbGFzc2lmaWVyUmVzdWx0SAKIAQESSQoTb3V0cHV0X25vdGlmaWNhdGlvbhgJIAEoCzInLmFnZW50LnYxLlNoZWxsT3V0cHV0Tm90aWZpY2F0aW9uQ29uZmlnSAOIAQESPQoTc21hcnRfbW9kZV9hcHByb3ZhbBgKIAEoCzIbLmFnZW50LnYxLlNtYXJ0TW9kZUFwcHJvdmFsSASIAQESTgoZaG9va19hcHByb3ZhbF9yZXF1aXJlbWVudBgLIAEoCzImLmFnZW50LnYxLlNoZWxsSG9va0FwcHJvdmFsUmVxdWlyZW1lbnRIBYgBARIVCg1za2lwX2FwcHJvdmFsGAwgASgIEhwKD2NvbnZlcnNhdGlvbl9pZBgNIAEoCUgGiAEBQhEKD19zYW5kYm94X3BvbGljeUIOCgxfZGVzY3JpcHRpb25CFAoSX2NsYXNzaWZpZXJfcmVzdWx0QhYKFF9vdXRwdXRfbm90aWZpY2F0aW9uQhYKFF9zbWFydF9tb2RlX2FwcHJvdmFsQhwKGl9ob29rX2FwcHJvdmFsX3JlcXVpcmVtZW50QhIKEF9jb252ZXJzYXRpb25faWQigQIKGkJhY2tncm91bmRTaGVsbFNwYXduUmVzdWx0EjgKB3N1Y2Nlc3MYASABKAsyJS5hZ2VudC52MS5CYWNrZ3JvdW5kU2hlbGxTcGF3blN1Y2Nlc3NIABI0CgVlcnJvchgCIAEoCzIjLmFnZW50LnYxLkJhY2tncm91bmRTaGVsbFNwYXduRXJyb3JIABIrCghyZWplY3RlZBgDIAEoCzIXLmFnZW50LnYxLlNoZWxsUmVqZWN0ZWRIABI8ChFwZXJtaXNzaW9uX2RlbmllZBgEIAEoCzIfLmFnZW50LnYxLlNoZWxsUGVybWlzc2lvbkRlbmllZEgAQggKBnJlc3VsdCJ1ChtCYWNrZ3JvdW5kU2hlbGxTcGF3blN1Y2Nlc3MSEAoIc2hlbGxfaWQYASABKA0SDwoHY29tbWFuZBgCIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgDIAEoCRIQCgNwaWQYBCABKA1IAIgBAUIGCgRfcGlkIlYKGUJhY2tncm91bmRTaGVsbFNwYXduRXJyb3ISDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRINCgVlcnJvchgDIAEoCSI2ChNXcml0ZVNoZWxsU3RkaW5BcmdzEhAKCHNoZWxsX2lkGAEgASgNEg0KBWNoYXJzGAIgASgJIocBChVXcml0ZVNoZWxsU3RkaW5SZXN1bHQSMwoHc3VjY2VzcxgBIAEoCzIgLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpblN1Y2Nlc3NIABIvCgVlcnJvchgCIAEoCzIeLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpbkVycm9ySABCCAoGcmVzdWx0Il0KFldyaXRlU2hlbGxTdGRpblN1Y2Nlc3MSEAoIc2hlbGxfaWQYASABKA0SMQopdGVybWluYWxfZmlsZV9sZW5ndGhfYmVmb3JlX2lucHV0X3dyaXR0ZW4YAiABKA0iJQoUV3JpdGVTaGVsbFN0ZGluRXJyb3ISDQoFZXJyb3IYASABKAkiIgoKQ29vcmRpbmF0ZRIJCgF4GAEgASgFEgkKAXkYAiABKAUiVQoPQ29tcHV0ZXJVc2VBcmdzEhQKDHRvb2xfY2FsbF9pZBgBIAEoCRIsCgdhY3Rpb25zGAIgAygLMhsuYWdlbnQudjEuQ29tcHV0ZXJVc2VBY3Rpb24igQQKEUNvbXB1dGVyVXNlQWN0aW9uEi8KCm1vdXNlX21vdmUYASABKAsyGS5hZ2VudC52MS5Nb3VzZU1vdmVBY3Rpb25IABImCgVjbGljaxgCIAEoCzIVLmFnZW50LnYxLkNsaWNrQWN0aW9uSAASLwoKbW91c2VfZG93bhgDIAEoCzIZLmFnZW50LnYxLk1vdXNlRG93bkFjdGlvbkgAEisKCG1vdXNlX3VwGAQgASgLMhcuYWdlbnQudjEuTW91c2VVcEFjdGlvbkgAEiQKBGRyYWcYBSABKAsyFC5hZ2VudC52MS5EcmFnQWN0aW9uSAASKAoGc2Nyb2xsGAYgASgLMhYuYWdlbnQudjEuU2Nyb2xsQWN0aW9uSAASJAoEdHlwZRgHIAEoCzIULmFnZW50LnYxLlR5cGVBY3Rpb25IABIiCgNrZXkYCCABKAsyEy5hZ2VudC52MS5LZXlBY3Rpb25IABIkCgR3YWl0GAkgASgLMhQuYWdlbnQudjEuV2FpdEFjdGlvbkgAEjAKCnNjcmVlbnNob3QYCiABKAsyGi5hZ2VudC52MS5TY3JlZW5zaG90QWN0aW9uSAASOQoPY3Vyc29yX3Bvc2l0aW9uGAsgASgLMh4uYWdlbnQudjEuQ3Vyc29yUG9zaXRpb25BY3Rpb25IAEIICgZhY3Rpb24iOwoPTW91c2VNb3ZlQWN0aW9uEigKCmNvb3JkaW5hdGUYASABKAsyFC5hZ2VudC52MS5Db29yZGluYXRlIpgBCgtDbGlja0FjdGlvbhItCgpjb29yZGluYXRlGAEgASgLMhQuYWdlbnQudjEuQ29vcmRpbmF0ZUgAiAEBEg4KBmJ1dHRvbhgCIAEoBRINCgVjb3VudBgDIAEoBRIaCg1tb2RpZmllcl9rZXlzGAQgASgJSAGIAQFCDQoLX2Nvb3JkaW5hdGVCEAoOX21vZGlmaWVyX2tleXMiIQoPTW91c2VEb3duQWN0aW9uEg4KBmJ1dHRvbhgBIAEoBSIfCg1Nb3VzZVVwQWN0aW9uEg4KBmJ1dHRvbhgBIAEoBSJACgpEcmFnQWN0aW9uEiIKBHBhdGgYASADKAsyFC5hZ2VudC52MS5Db29yZGluYXRlEg4KBmJ1dHRvbhgCIAEoBSKdAQoMU2Nyb2xsQWN0aW9uEi0KCmNvb3JkaW5hdGUYASABKAsyFC5hZ2VudC52MS5Db29yZGluYXRlSACIAQESEQoJZGlyZWN0aW9uGAIgASgFEg4KBmFtb3VudBgDIAEoBRIaCg1tb2RpZmllcl9rZXlzGAQgASgJSAGIAQFCDQoLX2Nvb3JkaW5hdGVCEAoOX21vZGlmaWVyX2tleXMiGgoKVHlwZUFjdGlvbhIMCgR0ZXh0GAEgASgJIkwKCUtleUFjdGlvbhILCgNrZXkYASABKAkSHQoQaG9sZF9kdXJhdGlvbl9tcxgCIAEoBUgAiAEBQhMKEV9ob2xkX2R1cmF0aW9uX21zIiEKCldhaXRBY3Rpb24SEwoLZHVyYXRpb25fbXMYASABKAUiEgoQU2NyZWVuc2hvdEFjdGlvbiIWChRDdXJzb3JQb3NpdGlvbkFjdGlvbiJ7ChFDb21wdXRlclVzZVJlc3VsdBIvCgdzdWNjZXNzGAEgASgLMhwuYWdlbnQudjEuQ29tcHV0ZXJVc2VTdWNjZXNzSAASKwoFZXJyb3IYAiABKAsyGi5hZ2VudC52MS5Db21wdXRlclVzZUVycm9ySABCCAoGcmVzdWx0IvsBChJDb21wdXRlclVzZVN1Y2Nlc3MSFAoMYWN0aW9uX2NvdW50GAEgASgFEhMKC2R1cmF0aW9uX21zGAIgASgFEhcKCnNjcmVlbnNob3QYAyABKAlIAIgBARIQCgNsb2cYBCABKAlIAYgBARIcCg9zY3JlZW5zaG90X3BhdGgYBSABKAlIAogBARIyCg9jdXJzb3JfcG9zaXRpb24YBiABKAsyFC5hZ2VudC52MS5Db29yZGluYXRlSAOIAQFCDQoLX3NjcmVlbnNob3RCBgoEX2xvZ0ISChBfc2NyZWVuc2hvdF9wYXRoQhIKEF9jdXJzb3JfcG9zaXRpb24iwAEKEENvbXB1dGVyVXNlRXJyb3ISDQoFZXJyb3IYASABKAkSFAoMYWN0aW9uX2NvdW50GAIgASgFEhMKC2R1cmF0aW9uX21zGAMgASgFEhAKA2xvZxgEIAEoCUgAiAEBEhcKCnNjcmVlbnNob3QYBSABKAlIAYgBARIcCg9zY3JlZW5zaG90X3BhdGgYBiABKAlIAogBAUIGCgRfbG9nQg0KC19zY3JlZW5zaG90QhIKEF9zY3JlZW5zaG90X3BhdGgiawoTQ29tcHV0ZXJVc2VUb29sQ2FsbBInCgRhcmdzGAEgASgLMhkuYWdlbnQudjEuQ29tcHV0ZXJVc2VBcmdzEisKBnJlc3VsdBgCIAEoCzIbLmFnZW50LnYxLkNvbXB1dGVyVXNlUmVzdWx0ImgKEkNyZWF0ZVBsYW5Ub29sQ2FsbBImCgRhcmdzGAEgASgLMhguYWdlbnQudjEuQ3JlYXRlUGxhbkFyZ3MSKgoGcmVzdWx0GAIgASgLMhouYWdlbnQudjEuQ3JlYXRlUGxhblJlc3VsdCI4CgVQaGFzZRIMCgRuYW1lGAEgASgJEiEKBXRvZG9zGAIgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0ilgEKDkNyZWF0ZVBsYW5BcmdzEgwKBHBsYW4YASABKAkSIQoFdG9kb3MYAiADKAsyEi5hZ2VudC52MS5Ub2RvSXRlbRIQCghvdmVydmlldxgDIAEoCRIMCgRuYW1lGAQgASgJEhIKCmlzX3Byb2plY3QYBSABKAgSHwoGcGhhc2VzGAYgAygLMg8uYWdlbnQudjEuUGhhc2UiigEKEENyZWF0ZVBsYW5SZXN1bHQSEAoIcGxhbl91cmkYAyABKAkSLgoHc3VjY2VzcxgBIAEoCzIbLmFnZW50LnYxLkNyZWF0ZVBsYW5TdWNjZXNzSAASKgoFZXJyb3IYAiABKAsyGS5hZ2VudC52MS5DcmVhdGVQbGFuRXJyb3JIAEIICgZyZXN1bHQiEwoRQ3JlYXRlUGxhblN1Y2Nlc3MiIAoPQ3JlYXRlUGxhbkVycm9yEg0KBWVycm9yGAEgASgJIlYKFkNyZWF0ZVBsYW5SZXF1ZXN0UXVlcnkSJgoEYXJncxgBIAEoCzIYLmFnZW50LnYxLkNyZWF0ZVBsYW5BcmdzEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSJHChlDcmVhdGVQbGFuUmVxdWVzdFJlc3BvbnNlEioKBnJlc3VsdBgBIAEoCzIaLmFnZW50LnYxLkNyZWF0ZVBsYW5SZXN1bHQiFgoUQ3Vyc29yUnVsZVR5cGVHbG9iYWwiKAoXQ3Vyc29yUnVsZVR5cGVGaWxlR2xvYnMSDQoFZ2xvYnMYASADKAkiMQoaQ3Vyc29yUnVsZVR5cGVBZ2VudEZldGNoZWQSEwoLZGVzY3JpcHRpb24YASABKAkiIAoeQ3Vyc29yUnVsZVR5cGVNYW51YWxseUF0dGFjaGVkIosCCg5DdXJzb3JSdWxlVHlwZRIwCgZnbG9iYWwYASABKAsyHi5hZ2VudC52MS5DdXJzb3JSdWxlVHlwZUdsb2JhbEgAEjkKDGZpbGVfZ2xvYmJlZBgCIAEoCzIhLmFnZW50LnYxLkN1cnNvclJ1bGVUeXBlRmlsZUdsb2JzSAASPQoNYWdlbnRfZmV0Y2hlZBgDIAEoCzIkLmFnZW50LnYxLkN1cnNvclJ1bGVUeXBlQWdlbnRGZXRjaGVkSAASRQoRbWFudWFsbHlfYXR0YWNoZWQYBCABKAsyKC5hZ2VudC52MS5DdXJzb3JSdWxlVHlwZU1hbnVhbGx5QXR0YWNoZWRIAEIGCgR0eXBlIsgBCgpDdXJzb3JSdWxlEhEKCWZ1bGxfcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJEiYKBHR5cGUYAyABKAsyGC5hZ2VudC52MS5DdXJzb3JSdWxlVHlwZRIOCgZzb3VyY2UYBCABKAUSHgoRZ2l0X3JlbW90ZV9vcmlnaW4YBSABKAlIAIgBARIYCgtwYXJzZV9lcnJvchgGIAEoCUgBiAEBQhQKEl9naXRfcmVtb3RlX29yaWdpbkIOCgxfcGFyc2VfZXJyb3IiMAoKRGVsZXRlQXJncxIMCgRwYXRoGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSLtAgoMRGVsZXRlUmVzdWx0EioKB3N1Y2Nlc3MYASABKAsyFy5hZ2VudC52MS5EZWxldGVTdWNjZXNzSAASNgoOZmlsZV9ub3RfZm91bmQYAiABKAsyHC5hZ2VudC52MS5EZWxldGVGaWxlTm90Rm91bmRIABIrCghub3RfZmlsZRgDIAEoCzIXLmFnZW50LnYxLkRlbGV0ZU5vdEZpbGVIABI9ChFwZXJtaXNzaW9uX2RlbmllZBgEIAEoCzIgLmFnZW50LnYxLkRlbGV0ZVBlcm1pc3Npb25EZW5pZWRIABItCglmaWxlX2J1c3kYBSABKAsyGC5hZ2VudC52MS5EZWxldGVGaWxlQnVzeUgAEiwKCHJlamVjdGVkGAYgASgLMhguYWdlbnQudjEuRGVsZXRlUmVqZWN0ZWRIABImCgVlcnJvchgHIAEoCzIVLmFnZW50LnYxLkRlbGV0ZUVycm9ySABCCAoGcmVzdWx0IlwKDURlbGV0ZVN1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIUCgxkZWxldGVkX2ZpbGUYAiABKAkSEQoJZmlsZV9zaXplGAMgASgDEhQKDHByZXZfY29udGVudBgEIAEoCSIiChJEZWxldGVGaWxlTm90Rm91bmQSDAoEcGF0aBgBIAEoCSIyCg1EZWxldGVOb3RGaWxlEgwKBHBhdGgYASABKAkSEwoLYWN0dWFsX3R5cGUYAiABKAkiWQoWRGVsZXRlUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJEhwKFGNsaWVudF92aXNpYmxlX2Vycm9yGAIgASgJEhMKC2lzX3JlYWRvbmx5GAMgASgIIh4KDkRlbGV0ZUZpbGVCdXN5EgwKBHBhdGgYASABKAkiLgoORGVsZXRlUmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiKgoLRGVsZXRlRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSJcCg5EZWxldGVUb29sQ2FsbBIiCgRhcmdzGAEgASgLMhQuYWdlbnQudjEuRGVsZXRlQXJncxImCgZyZXN1bHQYAiABKAsyFi5hZ2VudC52MS5EZWxldGVSZXN1bHQiNQoPRGlhZ25vc3RpY3NBcmdzEgwKBHBhdGgYASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIq8CChFEaWFnbm9zdGljc1Jlc3VsdBIvCgdzdWNjZXNzGAEgASgLMhwuYWdlbnQudjEuRGlhZ25vc3RpY3NTdWNjZXNzSAASKwoFZXJyb3IYAiABKAsyGi5hZ2VudC52MS5EaWFnbm9zdGljc0Vycm9ySAASMQoIcmVqZWN0ZWQYAyABKAsyHS5hZ2VudC52MS5EaWFnbm9zdGljc1JlamVjdGVkSAASOwoOZmlsZV9ub3RfZm91bmQYBCABKAsyIS5hZ2VudC52MS5EaWFnbm9zdGljc0ZpbGVOb3RGb3VuZEgAEkIKEXBlcm1pc3Npb25fZGVuaWVkGAUgASgLMiUuYWdlbnQudjEuRGlhZ25vc3RpY3NQZXJtaXNzaW9uRGVuaWVkSABCCAoGcmVzdWx0ImgKEkRpYWdub3N0aWNzU3VjY2VzcxIMCgRwYXRoGAEgASgJEikKC2RpYWdub3N0aWNzGAIgAygLMhQuYWdlbnQudjEuRGlhZ25vc3RpYxIZChF0b3RhbF9kaWFnbm9zdGljcxgDIAEoBSJ/CgpEaWFnbm9zdGljEhAKCHNldmVyaXR5GAEgASgFEh4KBXJhbmdlGAIgASgLMg8uYWdlbnQudjEuUmFuZ2USDwoHbWVzc2FnZRgDIAEoCRIOCgZzb3VyY2UYBCABKAkSDAoEY29kZRgFIAEoCRIQCghpc19zdGFsZRgGIAEoCCIvChBEaWFnbm9zdGljc0Vycm9yEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkiMwoTRGlhZ25vc3RpY3NSZWplY3RlZBIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSInChdEaWFnbm9zdGljc0ZpbGVOb3RGb3VuZBIMCgRwYXRoGAEgASgJIisKG0RpYWdub3N0aWNzUGVybWlzc2lvbkRlbmllZBIMCgRwYXRoGAEgASgJIkgKCEVkaXRBcmdzEgwKBHBhdGgYASABKAkSGwoOc3RyZWFtX2NvbnRlbnQYBiABKAlIAIgBAUIRCg9fc3RyZWFtX2NvbnRlbnQi1gIKCkVkaXRSZXN1bHQSKAoHc3VjY2VzcxgBIAEoCzIVLmFnZW50LnYxLkVkaXRTdWNjZXNzSAASNAoOZmlsZV9ub3RfZm91bmQYAiABKAsyGi5hZ2VudC52MS5FZGl0RmlsZU5vdEZvdW5kSAASRAoWcmVhZF9wZXJtaXNzaW9uX2RlbmllZBgDIAEoCzIiLmFnZW50LnYxLkVkaXRSZWFkUGVybWlzc2lvbkRlbmllZEgAEkYKF3dyaXRlX3Blcm1pc3Npb25fZGVuaWVkGAQgASgLMiMuYWdlbnQudjEuRWRpdFdyaXRlUGVybWlzc2lvbkRlbmllZEgAEioKCHJlamVjdGVkGAYgASgLMhYuYWdlbnQudjEuRWRpdFJlamVjdGVkSAASJAoFZXJyb3IYByABKAsyEy5hZ2VudC52MS5FZGl0RXJyb3JIAEIICgZyZXN1bHQipAIKC0VkaXRTdWNjZXNzEgwKBHBhdGgYASABKAkSGAoLbGluZXNfYWRkZWQYAyABKAVIAIgBARIaCg1saW5lc19yZW1vdmVkGAQgASgFSAGIAQESGAoLZGlmZl9zdHJpbmcYBSABKAlIAogBARIlChhiZWZvcmVfZnVsbF9maWxlX2NvbnRlbnQYBiABKAlIA4gBARIfChdhZnRlcl9mdWxsX2ZpbGVfY29udGVudBgHIAEoCRIUCgdtZXNzYWdlGAggASgJSASIAQFCDgoMX2xpbmVzX2FkZGVkQhAKDl9saW5lc19yZW1vdmVkQg4KDF9kaWZmX3N0cmluZ0IbChlfYmVmb3JlX2Z1bGxfZmlsZV9jb250ZW50QgoKCF9tZXNzYWdlIiAKEEVkaXRGaWxlTm90Rm91bmQSDAoEcGF0aBgBIAEoCSIoChhFZGl0UmVhZFBlcm1pc3Npb25EZW5pZWQSDAoEcGF0aBgBIAEoCSJNChlFZGl0V3JpdGVQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkSEwoLaXNfcmVhZG9ubHkYAyABKAgiLAoMRWRpdFJlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJImIKCUVkaXRFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJEiAKE21vZGVsX3Zpc2libGVfZXJyb3IYBSABKAlIAIgBAUIWChRfbW9kZWxfdmlzaWJsZV9lcnJvciJWCgxFZGl0VG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLkVkaXRBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLkVkaXRSZXN1bHQiMQoRRWRpdFRvb2xDYWxsRGVsdGESHAoUc3RyZWFtX2NvbnRlbnRfZGVsdGEYASABKAkiMQoMRXhhRmV0Y2hBcmdzEgsKA2lkcxgBIAMoCRIUCgx0b29sX2NhbGxfaWQYAiABKAkiogEKDkV4YUZldGNoUmVzdWx0EiwKB3N1Y2Nlc3MYASABKAsyGS5hZ2VudC52MS5FeGFGZXRjaFN1Y2Nlc3NIABIoCgVlcnJvchgCIAEoCzIXLmFnZW50LnYxLkV4YUZldGNoRXJyb3JIABIuCghyZWplY3RlZBgDIAEoCzIaLmFnZW50LnYxLkV4YUZldGNoUmVqZWN0ZWRIAEIICgZyZXN1bHQiPgoPRXhhRmV0Y2hTdWNjZXNzEisKCGNvbnRlbnRzGAEgAygLMhkuYWdlbnQudjEuRXhhRmV0Y2hDb250ZW50Ih4KDUV4YUZldGNoRXJyb3ISDQoFZXJyb3IYASABKAkiIgoQRXhhRmV0Y2hSZWplY3RlZBIOCgZyZWFzb24YASABKAkiUwoPRXhhRmV0Y2hDb250ZW50Eg0KBXRpdGxlGAEgASgJEgsKA3VybBgCIAEoCRIMCgR0ZXh0GAMgASgJEhYKDnB1Ymxpc2hlZF9kYXRlGAQgASgJImIKEEV4YUZldGNoVG9vbENhbGwSJAoEYXJncxgBIAEoCzIWLmFnZW50LnYxLkV4YUZldGNoQXJncxIoCgZyZXN1bHQYAiABKAsyGC5hZ2VudC52MS5FeGFGZXRjaFJlc3VsdCI8ChRFeGFGZXRjaFJlcXVlc3RRdWVyeRIkCgRhcmdzGAEgASgLMhYuYWdlbnQudjEuRXhhRmV0Y2hBcmdzIqMBChdFeGFGZXRjaFJlcXVlc3RSZXNwb25zZRI+CghhcHByb3ZlZBgBIAEoCzIqLmFnZW50LnYxLkV4YUZldGNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkSAASPgoIcmVqZWN0ZWQYAiABKAsyKi5hZ2VudC52MS5FeGFGZXRjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZEgAQggKBnJlc3VsdCIiCiBFeGFGZXRjaFJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZCIyCiBFeGFGZXRjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZBIOCgZyZWFzb24YASABKAkiVwoNRXhhU2VhcmNoQXJncxINCgVxdWVyeRgBIAEoCRIMCgR0eXBlGAIgASgJEhMKC251bV9yZXN1bHRzGAMgASgFEhQKDHRvb2xfY2FsbF9pZBgEIAEoCSKmAQoPRXhhU2VhcmNoUmVzdWx0Ei0KB3N1Y2Nlc3MYASABKAsyGi5hZ2VudC52MS5FeGFTZWFyY2hTdWNjZXNzSAASKQoFZXJyb3IYAiABKAsyGC5hZ2VudC52MS5FeGFTZWFyY2hFcnJvckgAEi8KCHJlamVjdGVkGAMgASgLMhsuYWdlbnQudjEuRXhhU2VhcmNoUmVqZWN0ZWRIAEIICgZyZXN1bHQiRAoQRXhhU2VhcmNoU3VjY2VzcxIwCgpyZWZlcmVuY2VzGAEgAygLMhwuYWdlbnQudjEuRXhhU2VhcmNoUmVmZXJlbmNlIh8KDkV4YVNlYXJjaEVycm9yEg0KBWVycm9yGAEgASgJIiMKEUV4YVNlYXJjaFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSJWChJFeGFTZWFyY2hSZWZlcmVuY2USDQoFdGl0bGUYASABKAkSCwoDdXJsGAIgASgJEgwKBHRleHQYAyABKAkSFgoOcHVibGlzaGVkX2RhdGUYBCABKAkiZQoRRXhhU2VhcmNoVG9vbENhbGwSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLkV4YVNlYXJjaEFyZ3MSKQoGcmVzdWx0GAIgASgLMhkuYWdlbnQudjEuRXhhU2VhcmNoUmVzdWx0Ij4KFUV4YVNlYXJjaFJlcXVlc3RRdWVyeRIlCgRhcmdzGAEgASgLMhcuYWdlbnQudjEuRXhhU2VhcmNoQXJncyKmAQoYRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlEj8KCGFwcHJvdmVkGAEgASgLMisuYWdlbnQudjEuRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkSAASPwoIcmVqZWN0ZWQYAiABKAsyKy5hZ2VudC52MS5FeGFTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWRIAEIICgZyZXN1bHQiIwohRXhhU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjMKIUV4YVNlYXJjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZBIOCgZyZWFzb24YASABKAkiIwoVRXhlY0NsaWVudFN0cmVhbUNsb3NlEgoKAmlkGAEgASgNIn4KD0V4ZWNDbGllbnRUaHJvdxIKCgJpZBgBIAEoDRINCgVlcnJvchgCIAEoCRIYCgtzdGFja190cmFjZRgDIAEoCUgAiAEBEhcKCmVycm9yX2NvZGUYBCABKAlIAYgBAUIOCgxfc3RhY2tfdHJhY2VCDQoLX2Vycm9yX2NvZGUiIQoTRXhlY0NsaWVudEhlYXJ0YmVhdBIKCgJpZBgBIAEoDSK+AQoYRXhlY0NsaWVudENvbnRyb2xNZXNzYWdlEjcKDHN0cmVhbV9jbG9zZRgBIAEoCzIfLmFnZW50LnYxLkV4ZWNDbGllbnRTdHJlYW1DbG9zZUgAEioKBXRocm93GAIgASgLMhkuYWdlbnQudjEuRXhlY0NsaWVudFRocm93SAASMgoJaGVhcnRiZWF0GAMgASgLMh0uYWdlbnQudjEuRXhlY0NsaWVudEhlYXJ0YmVhdEgAQgkKB21lc3NhZ2UihAEKC1NwYW5Db250ZXh0EhAKCHRyYWNlX2lkGAEgASgJEg8KB3NwYW5faWQYAiABKAkSGAoLdHJhY2VfZmxhZ3MYAyABKA1IAIgBARIYCgt0cmFjZV9zdGF0ZRgEIAEoCUgBiAEBQg4KDF90cmFjZV9mbGFnc0IOCgxfdHJhY2Vfc3RhdGUiCwoJQWJvcnRBcmdzIg0KC0Fib3J0UmVzdWx0ItoTChFFeGVjU2VydmVyTWVzc2FnZRIKCgJpZBgBIAEoDRIPCgdleGVjX2lkGA8gASgJEjAKDHNwYW5fY29udGV4dBgTIAEoCzIVLmFnZW50LnYxLlNwYW5Db250ZXh0SAGIAQESKQoKc2hlbGxfYXJncxgCIAEoCzITLmFnZW50LnYxLlNoZWxsQXJnc0gAEikKCndyaXRlX2FyZ3MYAyABKAsyEy5hZ2VudC52MS5Xcml0ZUFyZ3NIABIrCgtkZWxldGVfYXJncxgEIAEoCzIULmFnZW50LnYxLkRlbGV0ZUFyZ3NIABInCglncmVwX2FyZ3MYBSABKAsyEi5hZ2VudC52MS5HcmVwQXJnc0gAEicKCXJlYWRfYXJncxgHIAEoCzISLmFnZW50LnYxLlJlYWRBcmdzSAASIwoHbHNfYXJncxgIIAEoCzIQLmFnZW50LnYxLkxzQXJnc0gAEjUKEGRpYWdub3N0aWNzX2FyZ3MYCSABKAsyGS5hZ2VudC52MS5EaWFnbm9zdGljc0FyZ3NIABI8ChRyZXF1ZXN0X2NvbnRleHRfYXJncxgKIAEoCzIcLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0QXJnc0gAEiUKCG1jcF9hcmdzGAsgASgLMhEuYWdlbnQudjEuTWNwQXJnc0gAEjAKEXNoZWxsX3N0cmVhbV9hcmdzGA4gASgLMhMuYWdlbnQudjEuU2hlbGxBcmdzSAASSQobYmFja2dyb3VuZF9zaGVsbF9zcGF3bl9hcmdzGBAgASgLMiIuYWdlbnQudjEuQmFja2dyb3VuZFNoZWxsU3Bhd25BcmdzSAASSgocbGlzdF9tY3BfcmVzb3VyY2VzX2V4ZWNfYXJncxgRIAEoCzIiLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFeGVjQXJnc0gAEkgKG3JlYWRfbWNwX3Jlc291cmNlX2V4ZWNfYXJncxgSIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzSAASKQoKZmV0Y2hfYXJncxgUIAEoCzITLmFnZW50LnYxLkZldGNoQXJnc0gAEjgKEnJlY29yZF9zY3JlZW5fYXJncxgVIAEoCzIaLmFnZW50LnYxLlJlY29yZFNjcmVlbkFyZ3NIABI2ChFjb21wdXRlcl91c2VfYXJncxgWIAEoCzIZLmFnZW50LnYxLkNvbXB1dGVyVXNlQXJnc0gAEj8KFndyaXRlX3NoZWxsX3N0ZGluX2FyZ3MYFyABKAsyHS5hZ2VudC52MS5Xcml0ZVNoZWxsU3RkaW5BcmdzSAASMAoScmVkYWN0ZWRfcmVhZF9hcmdzGB0gASgLMhIuYWdlbnQudjEuUmVhZEFyZ3NIABI5ChNtY3Bfc3RhdGVfZXhlY19hcmdzGCQgASgLMhouYWdlbnQudjEuTWNwU3RhdGVFeGVjQXJnc0gAEjYKEWV4ZWN1dGVfaG9va19hcmdzGBsgASgLMhkuYWdlbnQudjEuRXhlY3V0ZUhvb2tBcmdzSAASLwoNc3ViYWdlbnRfYXJncxgcIAEoCzIWLmFnZW50LnYxLlN1YmFnZW50QXJnc0gAEkkKG2ZvcmNlX2JhY2tncm91bmRfc2hlbGxfYXJncxgeIAEoCzIiLmFnZW50LnYxLkZvcmNlQmFja2dyb3VuZFNoZWxsQXJnc0gAEk8KHmZvcmNlX2JhY2tncm91bmRfc3ViYWdlbnRfYXJncxgfIAEoCzIlLmFnZW50LnYxLkZvcmNlQmFja2dyb3VuZFN1YmFnZW50QXJnc0gAEjoKE3N1YmFnZW50X2F3YWl0X2FyZ3MYJSABKAsyGy5hZ2VudC52MS5TdWJhZ2VudEF3YWl0QXJnc0gAEkcKGnNtYXJ0X21vZGVfY2xhc3NpZmllcl9hcmdzGCYgASgLMiEuYWdlbnQudjEuU21hcnRNb2RlQ2xhc3NpZmllckFyZ3NIABJCChdjYW52YXNfZGlhZ25vc3RpY3NfYXJncxgoIAEoCzIfLmFnZW50LnYxLkNhbnZhc0RpYWdub3N0aWNzQXJnc0gAEk0KHXNoZWxsX2FsbG93bGlzdF9wcmVjaGVja19hcmdzGCkgASgLMiQuYWdlbnQudjEuU2hlbGxBbGxvd2xpc3RQcmVjaGVja0FyZ3NIABJJChttY3BfYWxsb3dsaXN0X3ByZWNoZWNrX2FyZ3MYKiABKAsyIi5hZ2VudC52MS5NY3BBbGxvd2xpc3RQcmVjaGVja0FyZ3NIABJUCiF3ZWJfZmV0Y2hfYWxsb3dsaXN0X3ByZWNoZWNrX2FyZ3MYKyABKAsyJy5hZ2VudC52MS5XZWJGZXRjaEFsbG93bGlzdFByZWNoZWNrQXJnc0gAEjQKEGdpdF9kaWZmX3JlcXVlc3QYLCABKAsyGC5hZ2VudC52MS5HZXREaWZmUmVxdWVzdEgAEjAKDHBpX3JlYWRfYXJncxgtIAEoCzIYLmFnZW50LnYxLlBpUmVhZEV4ZWNBcmdzSAASMAoMcGlfYmFzaF9hcmdzGC4gASgLMhguYWdlbnQudjEuUGlCYXNoRXhlY0FyZ3NIABIwCgxwaV9lZGl0X2FyZ3MYLyABKAsyGC5hZ2VudC52MS5QaUVkaXRFeGVjQXJnc0gAEjIKDXBpX3dyaXRlX2FyZ3MYMCABKAsyGS5hZ2VudC52MS5QaVdyaXRlRXhlY0FyZ3NIABIwCgxwaV9ncmVwX2FyZ3MYMSABKAsyGC5hZ2VudC52MS5QaUdyZXBFeGVjQXJnc0gAEjAKDHBpX2ZpbmRfYXJncxgyIAEoCzIYLmFnZW50LnYxLlBpRmluZEV4ZWNBcmdzSAASLAoKcGlfbHNfYXJncxgzIAEoCzIWLmFnZW50LnYxLlBpTHNFeGVjQXJnc0gAEjcKGG1pbmlfc3dlX2FnZW50X2Jhc2hfYXJncxg0IAEoCzITLmFnZW50LnYxLlNoZWxsQXJnc0gAEkQKGGNvbnZlcnNhdGlvbl9zZWFyY2hfYXJncxg1IAEoCzIgLmFnZW50LnYxLkNvbnZlcnNhdGlvblNlYXJjaEFyZ3NIABJFChlhZ2VudF9zdG9yZV9jb25mbGljdF9hcmdzGDYgASgLMiAuYWdlbnQudjEuQWdlbnRTdG9yZUNvbmZsaWN0QXJnc0gAEiwKH2FjY2VwdF9ob29rX2FkZGl0aW9uYWxfY29udGV4dHMYNyABKAhIAogBAUIJCgdtZXNzYWdlQg8KDV9zcGFuX2NvbnRleHRCIgogX2FjY2VwdF9ob29rX2FkZGl0aW9uYWxfY29udGV4dHMi4RQKEUV4ZWNDbGllbnRNZXNzYWdlEgoKAmlkGAEgASgNEg8KB2V4ZWNfaWQYDyABKAkSLQoMc2hlbGxfcmVzdWx0GAIgASgLMhUuYWdlbnQudjEuU2hlbGxSZXN1bHRIABItCgx3cml0ZV9yZXN1bHQYAyABKAsyFS5hZ2VudC52MS5Xcml0ZVJlc3VsdEgAEi8KDWRlbGV0ZV9yZXN1bHQYBCABKAsyFi5hZ2VudC52MS5EZWxldGVSZXN1bHRIABIrCgtncmVwX3Jlc3VsdBgFIAEoCzIULmFnZW50LnYxLkdyZXBSZXN1bHRIABIrCgtyZWFkX3Jlc3VsdBgHIAEoCzIULmFnZW50LnYxLlJlYWRSZXN1bHRIABInCglsc19yZXN1bHQYCCABKAsyEi5hZ2VudC52MS5Mc1Jlc3VsdEgAEjkKEmRpYWdub3N0aWNzX3Jlc3VsdBgJIAEoCzIbLmFnZW50LnYxLkRpYWdub3N0aWNzUmVzdWx0SAASQAoWcmVxdWVzdF9jb250ZXh0X3Jlc3VsdBgKIAEoCzIeLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0UmVzdWx0SAASKQoKbWNwX3Jlc3VsdBgLIAEoCzITLmFnZW50LnYxLk1jcFJlc3VsdEgAEi0KDHNoZWxsX3N0cmVhbRgOIAEoCzIVLmFnZW50LnYxLlNoZWxsU3RyZWFtSAASTQodYmFja2dyb3VuZF9zaGVsbF9zcGF3bl9yZXN1bHQYECABKAsyJC5hZ2VudC52MS5CYWNrZ3JvdW5kU2hlbGxTcGF3blJlc3VsdEgAEk4KHmxpc3RfbWNwX3Jlc291cmNlc19leGVjX3Jlc3VsdBgRIAEoCzIkLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFeGVjUmVzdWx0SAASTAodcmVhZF9tY3BfcmVzb3VyY2VfZXhlY19yZXN1bHQYEiABKAsyIy5hZ2VudC52MS5SZWFkTWNwUmVzb3VyY2VFeGVjUmVzdWx0SAASLQoMZmV0Y2hfcmVzdWx0GBQgASgLMhUuYWdlbnQudjEuRmV0Y2hSZXN1bHRIABI8ChRyZWNvcmRfc2NyZWVuX3Jlc3VsdBgVIAEoCzIcLmFnZW50LnYxLlJlY29yZFNjcmVlblJlc3VsdEgAEjoKE2NvbXB1dGVyX3VzZV9yZXN1bHQYFiABKAsyGy5hZ2VudC52MS5Db21wdXRlclVzZVJlc3VsdEgAEkMKGHdyaXRlX3NoZWxsX3N0ZGluX3Jlc3VsdBgXIAEoCzIfLmFnZW50LnYxLldyaXRlU2hlbGxTdGRpblJlc3VsdEgAEjQKFHJlZGFjdGVkX3JlYWRfcmVzdWx0GB0gASgLMhQuYWdlbnQudjEuUmVhZFJlc3VsdEgAEj0KFW1jcF9zdGF0ZV9leGVjX3Jlc3VsdBgkIAEoCzIcLmFnZW50LnYxLk1jcFN0YXRlRXhlY1Jlc3VsdEgAEjoKE2V4ZWN1dGVfaG9va19yZXN1bHQYGyABKAsyGy5hZ2VudC52MS5FeGVjdXRlSG9va1Jlc3VsdEgAEjMKD3N1YmFnZW50X3Jlc3VsdBgcIAEoCzIYLmFnZW50LnYxLlN1YmFnZW50UmVzdWx0SAASTQodZm9yY2VfYmFja2dyb3VuZF9zaGVsbF9yZXN1bHQYHiABKAsyJC5hZ2VudC52MS5Gb3JjZUJhY2tncm91bmRTaGVsbFJlc3VsdEgAElMKIGZvcmNlX2JhY2tncm91bmRfc3ViYWdlbnRfcmVzdWx0GB8gASgLMicuYWdlbnQudjEuRm9yY2VCYWNrZ3JvdW5kU3ViYWdlbnRSZXN1bHRIABI+ChVzdWJhZ2VudF9hd2FpdF9yZXN1bHQYJSABKAsyHS5hZ2VudC52MS5TdWJhZ2VudEF3YWl0UmVzdWx0SAASSwocc21hcnRfbW9kZV9jbGFzc2lmaWVyX3Jlc3VsdBgmIAEoCzIjLmFnZW50LnYxLlNtYXJ0TW9kZUNsYXNzaWZpZXJSZXN1bHRIABJGChljYW52YXNfZGlhZ25vc3RpY3NfcmVzdWx0GCggASgLMiEuYWdlbnQudjEuQ2FudmFzRGlhZ25vc3RpY3NSZXN1bHRIABJRCh9zaGVsbF9hbGxvd2xpc3RfcHJlY2hlY2tfcmVzdWx0GCkgASgLMiYuYWdlbnQudjEuU2hlbGxBbGxvd2xpc3RQcmVjaGVja1Jlc3VsdEgAEk0KHW1jcF9hbGxvd2xpc3RfcHJlY2hlY2tfcmVzdWx0GCogASgLMiQuYWdlbnQudjEuTWNwQWxsb3dsaXN0UHJlY2hlY2tSZXN1bHRIABJYCiN3ZWJfZmV0Y2hfYWxsb3dsaXN0X3ByZWNoZWNrX3Jlc3VsdBgrIAEoCzIpLmFnZW50LnYxLldlYkZldGNoQWxsb3dsaXN0UHJlY2hlY2tSZXN1bHRIABI2ChFnaXRfZGlmZl9yZXNwb25zZRgsIAEoCzIZLmFnZW50LnYxLkdldERpZmZSZXNwb25zZUgAEjQKDnBpX3JlYWRfcmVzdWx0GC4gASgLMhouYWdlbnQudjEuUGlSZWFkRXhlY1Jlc3VsdEgAEjQKDnBpX2Jhc2hfcmVzdWx0GC8gASgLMhouYWdlbnQudjEuUGlCYXNoRXhlY1Jlc3VsdEgAEjQKDnBpX2VkaXRfcmVzdWx0GDAgASgLMhouYWdlbnQudjEuUGlFZGl0RXhlY1Jlc3VsdEgAEjYKD3BpX3dyaXRlX3Jlc3VsdBgxIAEoCzIbLmFnZW50LnYxLlBpV3JpdGVFeGVjUmVzdWx0SAASNAoOcGlfZ3JlcF9yZXN1bHQYMiABKAsyGi5hZ2VudC52MS5QaUdyZXBFeGVjUmVzdWx0SAASNAoOcGlfZmluZF9yZXN1bHQYMyABKAsyGi5hZ2VudC52MS5QaUZpbmRFeGVjUmVzdWx0SAASMAoMcGlfbHNfcmVzdWx0GDQgASgLMhguYWdlbnQudjEuUGlMc0V4ZWNSZXN1bHRIABJIChpjb252ZXJzYXRpb25fc2VhcmNoX3Jlc3VsdBg1IAEoCzIiLmFnZW50LnYxLkNvbnZlcnNhdGlvblNlYXJjaFJlc3VsdEgAEkkKG2FnZW50X3N0b3JlX2NvbmZsaWN0X3Jlc3VsdBg2IAEoCzIiLmFnZW50LnYxLkFnZW50U3RvcmVDb25mbGljdFJlc3VsdEgAEjsKGm1pbmlfc3dlX2FnZW50X2Jhc2hfcmVzdWx0GDcgASgLMhUuYWdlbnQudjEuU2hlbGxSZXN1bHRIABIkChdsb2NhbF9leGVjdXRpb25fdGltZV9tcxgnIAEoBUgBiAEBEkEKGGhvb2tfYWRkaXRpb25hbF9jb250ZXh0cxgtIAMoCzIfLmFnZW50LnYxLkhvb2tBZGRpdGlvbmFsQ29udGV4dEIJCgdtZXNzYWdlQhoKGF9sb2NhbF9leGVjdXRpb25fdGltZV9tcyIuCglGZXRjaEFyZ3MSCwoDdXJsGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSJpCgtGZXRjaFJlc3VsdBIpCgdzdWNjZXNzGAEgASgLMhYuYWdlbnQudjEuRmV0Y2hTdWNjZXNzSAASJQoFZXJyb3IYAiABKAsyFC5hZ2VudC52MS5GZXRjaEVycm9ySABCCAoGcmVzdWx0IlcKDEZldGNoU3VjY2VzcxILCgN1cmwYASABKAkSDwoHY29udGVudBgCIAEoCRITCgtzdGF0dXNfY29kZRgDIAEoBRIUCgxjb250ZW50X3R5cGUYBCABKAkiKAoKRmV0Y2hFcnJvchILCgN1cmwYASABKAkSDQoFZXJyb3IYAiABKAkibQoRR2VuZXJhdGVJbWFnZUFyZ3MSEwoLZGVzY3JpcHRpb24YASABKAkSFgoJZmlsZV9wYXRoGAIgASgJSACIAQESHQoVcmVmZXJlbmNlX2ltYWdlX3BhdGhzGAUgAygJQgwKCl9maWxlX3BhdGgigQEKE0dlbmVyYXRlSW1hZ2VSZXN1bHQSMQoHc3VjY2VzcxgBIAEoCzIeLmFnZW50LnYxLkdlbmVyYXRlSW1hZ2VTdWNjZXNzSAASLQoFZXJyb3IYAiABKAsyHC5hZ2VudC52MS5HZW5lcmF0ZUltYWdlRXJyb3JIAEIICgZyZXN1bHQiPQoUR2VuZXJhdGVJbWFnZVN1Y2Nlc3MSEQoJZmlsZV9wYXRoGAEgASgJEhIKCmltYWdlX2RhdGEYAiABKAkiIwoSR2VuZXJhdGVJbWFnZUVycm9yEg0KBWVycm9yGAEgASgJInEKFUdlbmVyYXRlSW1hZ2VUb29sQ2FsbBIpCgRhcmdzGAEgASgLMhsuYWdlbnQudjEuR2VuZXJhdGVJbWFnZUFyZ3MSLQoGcmVzdWx0GAIgASgLMh0uYWdlbnQudjEuR2VuZXJhdGVJbWFnZVJlc3VsdCLmBAoIR3JlcEFyZ3MSDwoHcGF0dGVybhgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQESEQoEZ2xvYhgDIAEoCUgBiAEBEhgKC291dHB1dF9tb2RlGAQgASgJSAKIAQESGwoOY29udGV4dF9iZWZvcmUYBSABKAVIA4gBARIaCg1jb250ZXh0X2FmdGVyGAYgASgFSASIAQESFAoHY29udGV4dBgHIAEoBUgFiAEBEh0KEGNhc2VfaW5zZW5zaXRpdmUYCCABKAhIBogBARIRCgR0eXBlGAkgASgJSAeIAQESFwoKaGVhZF9saW1pdBgKIAEoBUgIiAEBEhYKCW11bHRpbGluZRgLIAEoCEgJiAEBEhEKBHNvcnQYDCABKAlICogBARIbCg5zb3J0X2FzY2VuZGluZxgNIAEoCEgLiAEBEhQKDHRvb2xfY2FsbF9pZBgOIAEoCRI0Cg5zYW5kYm94X3BvbGljeRgPIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIDIgBARITCgZvZmZzZXQYECABKAVIDYgBAUIHCgVfcGF0aEIHCgVfZ2xvYkIOCgxfb3V0cHV0X21vZGVCEQoPX2NvbnRleHRfYmVmb3JlQhAKDl9jb250ZXh0X2FmdGVyQgoKCF9jb250ZXh0QhMKEV9jYXNlX2luc2Vuc2l0aXZlQgcKBV90eXBlQg0KC19oZWFkX2xpbWl0QgwKCl9tdWx0aWxpbmVCBwoFX3NvcnRCEQoPX3NvcnRfYXNjZW5kaW5nQhEKD19zYW5kYm94X3BvbGljeUIJCgdfb2Zmc2V0ImYKCkdyZXBSZXN1bHQSKAoHc3VjY2VzcxgBIAEoCzIVLmFnZW50LnYxLkdyZXBTdWNjZXNzSAASJAoFZXJyb3IYAiABKAsyEy5hZ2VudC52MS5HcmVwRXJyb3JIAEIICgZyZXN1bHQiGgoJR3JlcEVycm9yEg0KBWVycm9yGAEgASgJIrQCCgtHcmVwU3VjY2VzcxIPCgdwYXR0ZXJuGAEgASgJEgwKBHBhdGgYAiABKAkSEwoLb3V0cHV0X21vZGUYAyABKAkSRgoRd29ya3NwYWNlX3Jlc3VsdHMYBCADKAsyKy5hZ2VudC52MS5HcmVwU3VjY2Vzcy5Xb3Jrc3BhY2VSZXN1bHRzRW50cnkSPAoUYWN0aXZlX2VkaXRvcl9yZXN1bHQYBSABKAsyGS5hZ2VudC52MS5HcmVwVW5pb25SZXN1bHRIAIgBARpSChVXb3Jrc3BhY2VSZXN1bHRzRW50cnkSCwoDa2V5GAEgASgJEigKBXZhbHVlGAIgASgLMhkuYWdlbnQudjEuR3JlcFVuaW9uUmVzdWx0OgI4AUIXChVfYWN0aXZlX2VkaXRvcl9yZXN1bHQiowEKD0dyZXBVbmlvblJlc3VsdBIqCgVjb3VudBgBIAEoCzIZLmFnZW50LnYxLkdyZXBDb3VudFJlc3VsdEgAEioKBWZpbGVzGAIgASgLMhkuYWdlbnQudjEuR3JlcEZpbGVzUmVzdWx0SAASLgoHY29udGVudBgDIAEoCzIbLmFnZW50LnYxLkdyZXBDb250ZW50UmVzdWx0SABCCAoGcmVzdWx0IoMCCg9HcmVwQ291bnRSZXN1bHQSJwoGY291bnRzGAEgAygLMhcuYWdlbnQudjEuR3JlcEZpbGVDb3VudBITCgt0b3RhbF9maWxlcxgCIAEoBRIVCg10b3RhbF9tYXRjaGVzGAMgASgFEhgKEGNsaWVudF90cnVuY2F0ZWQYBCABKAgSGQoRcmlwZ3JlcF90cnVuY2F0ZWQYBSABKAgSHwoSaGVhZF9saW1pdF9hcHBsaWVkGAYgASgFSACIAQESGwoOb2Zmc2V0X2FwcGxpZWQYByABKAVIAYgBAUIVChNfaGVhZF9saW1pdF9hcHBsaWVkQhEKD19vZmZzZXRfYXBwbGllZCIsCg1HcmVwRmlsZUNvdW50EgwKBGZpbGUYASABKAkSDQoFY291bnQYAiABKAUi0gEKD0dyZXBGaWxlc1Jlc3VsdBINCgVmaWxlcxgBIAMoCRITCgt0b3RhbF9maWxlcxgCIAEoBRIYChBjbGllbnRfdHJ1bmNhdGVkGAMgASgIEhkKEXJpcGdyZXBfdHJ1bmNhdGVkGAQgASgIEh8KEmhlYWRfbGltaXRfYXBwbGllZBgFIAEoBUgAiAEBEhsKDm9mZnNldF9hcHBsaWVkGAYgASgFSAGIAQFCFQoTX2hlYWRfbGltaXRfYXBwbGllZEIRCg9fb2Zmc2V0X2FwcGxpZWQijAIKEUdyZXBDb250ZW50UmVzdWx0EigKB21hdGNoZXMYASADKAsyFy5hZ2VudC52MS5HcmVwRmlsZU1hdGNoEhMKC3RvdGFsX2xpbmVzGAIgASgFEhsKE3RvdGFsX21hdGNoZWRfbGluZXMYAyABKAUSGAoQY2xpZW50X3RydW5jYXRlZBgEIAEoCBIZChFyaXBncmVwX3RydW5jYXRlZBgFIAEoCBIfChJoZWFkX2xpbWl0X2FwcGxpZWQYBiABKAVIAIgBARIbCg5vZmZzZXRfYXBwbGllZBgHIAEoBUgBiAEBQhUKE19oZWFkX2xpbWl0X2FwcGxpZWRCEQoPX29mZnNldF9hcHBsaWVkIkoKDUdyZXBGaWxlTWF0Y2gSDAoEZmlsZRgBIAEoCRIrCgdtYXRjaGVzGAIgAygLMhouYWdlbnQudjEuR3JlcENvbnRlbnRNYXRjaCJsChBHcmVwQ29udGVudE1hdGNoEhMKC2xpbmVfbnVtYmVyGAEgASgFEg8KB2NvbnRlbnQYAiABKAkSGQoRY29udGVudF90cnVuY2F0ZWQYAyABKAgSFwoPaXNfY29udGV4dF9saW5lGAQgASgIIh0KCkdyZXBTdHJlYW0SDwoHcGF0dGVybhgBIAEoCSJWCgxHcmVwVG9vbENhbGwSIAoEYXJncxgBIAEoCzISLmFnZW50LnYxLkdyZXBBcmdzEiQKBnJlc3VsdBgCIAEoCzIULmFnZW50LnYxLkdyZXBSZXN1bHQiHgoLR2V0QmxvYkFyZ3MSDwoHYmxvYl9pZBgBIAEoDCI1Cg1HZXRCbG9iUmVzdWx0EhYKCWJsb2JfZGF0YRgBIAEoDEgAiAEBQgwKCl9ibG9iX2RhdGEiMQoLU2V0QmxvYkFyZ3MSDwoHYmxvYl9pZBgBIAEoDBIRCglibG9iX2RhdGEYAiABKAwiPgoNU2V0QmxvYlJlc3VsdBIjCgVlcnJvchgBIAEoCzIPLmFnZW50LnYxLkVycm9ySACIAQFCCAoGX2Vycm9yIssBCg9LdlNlcnZlck1lc3NhZ2USCgoCaWQYASABKA0SMAoMc3Bhbl9jb250ZXh0GAQgASgLMhUuYWdlbnQudjEuU3BhbkNvbnRleHRIAYgBARIuCg1nZXRfYmxvYl9hcmdzGAIgASgLMhUuYWdlbnQudjEuR2V0QmxvYkFyZ3NIABIuCg1zZXRfYmxvYl9hcmdzGAMgASgLMhUuYWdlbnQudjEuU2V0QmxvYkFyZ3NIAEIJCgdtZXNzYWdlQg8KDV9zcGFuX2NvbnRleHQikAEKD0t2Q2xpZW50TWVzc2FnZRIKCgJpZBgBIAEoDRIyCg9nZXRfYmxvYl9yZXN1bHQYAiABKAsyFy5hZ2VudC52MS5HZXRCbG9iUmVzdWx0SAASMgoPc2V0X2Jsb2JfcmVzdWx0GAMgASgLMhcuYWdlbnQudjEuU2V0QmxvYlJlc3VsdEgAQgkKB21lc3NhZ2UirQEKBkxzQXJncxIMCgRwYXRoGAEgASgJEg4KBmlnbm9yZRgCIAMoCRIUCgx0b29sX2NhbGxfaWQYAyABKAkSNAoOc2FuZGJveF9wb2xpY3kYBCABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SACIAQESFwoKdGltZW91dF9tcxgFIAEoDUgBiAEBQhEKD19zYW5kYm94X3BvbGljeUINCgtfdGltZW91dF9tcyKyAQoITHNSZXN1bHQSJgoHc3VjY2VzcxgBIAEoCzITLmFnZW50LnYxLkxzU3VjY2Vzc0gAEiIKBWVycm9yGAIgASgLMhEuYWdlbnQudjEuTHNFcnJvckgAEigKCHJlamVjdGVkGAMgASgLMhQuYWdlbnQudjEuTHNSZWplY3RlZEgAEiYKB3RpbWVvdXQYBCABKAsyEy5hZ2VudC52MS5Mc1RpbWVvdXRIAEIICgZyZXN1bHQiRwoJTHNTdWNjZXNzEjoKE2RpcmVjdG9yeV90cmVlX3Jvb3QYASABKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlIvYCChNMc0RpcmVjdG9yeVRyZWVOb2RlEhAKCGFic19wYXRoGAEgASgJEjQKDWNoaWxkcmVuX2RpcnMYAiADKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlEjoKDmNoaWxkcmVuX2ZpbGVzGAMgAygLMiIuYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZV9GaWxlEh8KF2NoaWxkcmVuX3dlcmVfcHJvY2Vzc2VkGAQgASgIEmQKHWZ1bGxfc3VidHJlZV9leHRlbnNpb25fY291bnRzGAUgAygLMj0uYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZS5GdWxsU3VidHJlZUV4dGVuc2lvbkNvdW50c0VudHJ5EhEKCW51bV9maWxlcxgGIAEoBRpBCh9GdWxsU3VidHJlZUV4dGVuc2lvbkNvdW50c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoBToCOAEiegoYTHNEaXJlY3RvcnlUcmVlTm9kZV9GaWxlEgwKBG5hbWUYASABKAkSOgoRdGVybWluYWxfbWV0YWRhdGEYAiABKAsyGi5hZ2VudC52MS5UZXJtaW5hbE1ldGFkYXRhSACIAQFCFAoSX3Rlcm1pbmFsX21ldGFkYXRhIiYKB0xzRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSIqCgpMc1JlamVjdGVkEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIkcKCUxzVGltZW91dBI6ChNkaXJlY3RvcnlfdHJlZV9yb290GAEgASgLMh0uYWdlbnQudjEuTHNEaXJlY3RvcnlUcmVlTm9kZSLxAQoQVGVybWluYWxNZXRhZGF0YRIQCgNjd2QYASABKAlIAIgBARI5Cg1sYXN0X2NvbW1hbmRzGAIgAygLMiIuYWdlbnQudjEuVGVybWluYWxNZXRhZGF0YV9Db21tYW5kEh0KEGxhc3RfbW9kaWZpZWRfbXMYAyABKANIAYgBARJACg9jdXJyZW50X2NvbW1hbmQYBCABKAsyIi5hZ2VudC52MS5UZXJtaW5hbE1ldGFkYXRhX0NvbW1hbmRIAogBAUIGCgRfY3dkQhMKEV9sYXN0X21vZGlmaWVkX21zQhIKEF9jdXJyZW50X2NvbW1hbmQipwEKGFRlcm1pbmFsTWV0YWRhdGFfQ29tbWFuZBIPCgdjb21tYW5kGAEgASgJEhYKCWV4aXRfY29kZRgCIAEoBUgAiAEBEhkKDHRpbWVzdGFtcF9tcxgDIAEoA0gBiAEBEhgKC2R1cmF0aW9uX21zGAQgASgDSAKIAQFCDAoKX2V4aXRfY29kZUIPCg1fdGltZXN0YW1wX21zQg4KDF9kdXJhdGlvbl9tcyJQCgpMc1Rvb2xDYWxsEh4KBGFyZ3MYASABKAsyEC5hZ2VudC52MS5Mc0FyZ3MSIgoGcmVzdWx0GAIgASgLMhIuYWdlbnQudjEuTHNSZXN1bHQi4AIKB01jcEFyZ3MSDAoEbmFtZRgBIAEoCRIpCgRhcmdzGAIgAygLMhsuYWdlbnQudjEuTWNwQXJncy5BcmdzRW50cnkSFAoMdG9vbF9jYWxsX2lkGAMgASgJEhsKE3Byb3ZpZGVyX2lkZW50aWZpZXIYBCABKAkSEQoJdG9vbF9uYW1lGAUgASgJEj0KE3NtYXJ0X21vZGVfYXBwcm92YWwYBiABKAsyGy5hZ2VudC52MS5TbWFydE1vZGVBcHByb3ZhbEgAiAEBEiAKGHNtYXJ0X21vZGVfYXBwcm92YWxfb25seRgHIAEoCBIVCg1za2lwX2FwcHJvdmFsGAggASgIEhkKEXNlcnZlcl9pZGVudGlmaWVyGAkgASgJGisKCUFyZ3NFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAw6AjgBQhYKFF9zbWFydF9tb2RlX2FwcHJvdmFsIuMCCglNY3BSZXN1bHQSJwoHc3VjY2VzcxgBIAEoCzIULmFnZW50LnYxLk1jcFN1Y2Nlc3NIABIjCgVlcnJvchgCIAEoCzISLmFnZW50LnYxLk1jcEVycm9ySAASKQoIcmVqZWN0ZWQYAyABKAsyFS5hZ2VudC52MS5NY3BSZWplY3RlZEgAEjoKEXBlcm1pc3Npb25fZGVuaWVkGAQgASgLMh0uYWdlbnQudjEuTWNwUGVybWlzc2lvbkRlbmllZEgAEjMKDnRvb2xfbm90X2ZvdW5kGAUgASgLMhkuYWdlbnQudjEuTWNwVG9vbE5vdEZvdW5kSAASNwoQc2VydmVyX25vdF9mb3VuZBgGIAEoCzIbLmFnZW50LnYxLk1jcFNlcnZlck5vdEZvdW5kSAASKQoIYXBwcm92ZWQYByABKAsyFS5hZ2VudC52MS5NY3BBcHByb3ZlZEgAQggKBnJlc3VsdCI4Cg9NY3BUb29sTm90Rm91bmQSDAoEbmFtZRgBIAEoCRIXCg9hdmFpbGFibGVfdG9vbHMYAiADKAkiagoOTWNwVGV4dENvbnRlbnQSDAoEdGV4dBgBIAEoCRI2Cg9vdXRwdXRfbG9jYXRpb24YAiABKAsyGC5hZ2VudC52MS5PdXRwdXRMb2NhdGlvbkgAiAEBQhIKEF9vdXRwdXRfbG9jYXRpb24iMgoPTWNwSW1hZ2VDb250ZW50EgwKBGRhdGEYASABKAwSEQoJbWltZV90eXBlGAIgASgJInsKGE1jcFRvb2xSZXN1bHRDb250ZW50SXRlbRIoCgR0ZXh0GAEgASgLMhguYWdlbnQudjEuTWNwVGV4dENvbnRlbnRIABIqCgVpbWFnZRgCIAEoCzIZLmFnZW50LnYxLk1jcEltYWdlQ29udGVudEgAQgkKB2NvbnRlbnQiUwoKTWNwU3VjY2VzcxIzCgdjb250ZW50GAEgAygLMiIuYWdlbnQudjEuTWNwVG9vbFJlc3VsdENvbnRlbnRJdGVtEhAKCGlzX2Vycm9yGAIgASgIIhkKCE1jcEVycm9yEg0KBWVycm9yGAEgASgJIjIKC01jcFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCRITCgtpc19yZWFkb25seRgCIAEoCCI5ChNNY3BQZXJtaXNzaW9uRGVuaWVkEg0KBWVycm9yGAEgASgJEhMKC2lzX3JlYWRvbmx5GAIgASgIIjoKGExpc3RNY3BSZXNvdXJjZXNFeGVjQXJncxITCgZzZXJ2ZXIYASABKAlIAIgBAUIJCgdfc2VydmVyIsYBChpMaXN0TWNwUmVzb3VyY2VzRXhlY1Jlc3VsdBI0CgdzdWNjZXNzGAEgASgLMiEuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc1N1Y2Nlc3NIABIwCgVlcnJvchgCIAEoCzIfLmFnZW50LnYxLkxpc3RNY3BSZXNvdXJjZXNFcnJvckgAEjYKCHJlamVjdGVkGAMgASgLMiIuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc1JlamVjdGVkSABCCAoGcmVzdWx0Ir0CCiZMaXN0TWNwUmVzb3VyY2VzRXhlY1Jlc3VsdF9NY3BSZXNvdXJjZRILCgN1cmkYASABKAkSEQoEbmFtZRgCIAEoCUgAiAEBEhgKC2Rlc2NyaXB0aW9uGAMgASgJSAGIAQESFgoJbWltZV90eXBlGAQgASgJSAKIAQESDgoGc2VydmVyGAUgASgJElYKC2Fubm90YXRpb25zGAYgAygLMkEuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHRfTWNwUmVzb3VyY2UuQW5ub3RhdGlvbnNFbnRyeRoyChBBbm5vdGF0aW9uc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9taW1lX3R5cGUiXgoXTGlzdE1jcFJlc291cmNlc1N1Y2Nlc3MSQwoJcmVzb3VyY2VzGAEgAygLMjAuYWdlbnQudjEuTGlzdE1jcFJlc291cmNlc0V4ZWNSZXN1bHRfTWNwUmVzb3VyY2UiJgoVTGlzdE1jcFJlc291cmNlc0Vycm9yEg0KBWVycm9yGAEgASgJIioKGExpc3RNY3BSZXNvdXJjZXNSZWplY3RlZBIOCgZyZWFzb24YASABKAki0QEKF1JlYWRNY3BSZXNvdXJjZUV4ZWNBcmdzEg4KBnNlcnZlchgBIAEoCRILCgN1cmkYAiABKAkSGgoNZG93bmxvYWRfcGF0aBgDIAEoCUgAiAEBEhQKDHRvb2xfY2FsbF9pZBgEIAEoCRI9ChNzbWFydF9tb2RlX2FwcHJvdmFsGAUgASgLMhsuYWdlbnQudjEuU21hcnRNb2RlQXBwcm92YWxIAYgBAUIQCg5fZG93bmxvYWRfcGF0aEIWChRfc21hcnRfbW9kZV9hcHByb3ZhbCL6AQoZUmVhZE1jcFJlc291cmNlRXhlY1Jlc3VsdBIzCgdzdWNjZXNzGAEgASgLMiAuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlU3VjY2Vzc0gAEi8KBWVycm9yGAIgASgLMh4uYWdlbnQudjEuUmVhZE1jcFJlc291cmNlRXJyb3JIABI1CghyZWplY3RlZBgDIAEoCzIhLmFnZW50LnYxLlJlYWRNY3BSZXNvdXJjZVJlamVjdGVkSAASNgoJbm90X2ZvdW5kGAQgASgLMiEuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlTm90Rm91bmRIAEIICgZyZXN1bHQisgMKFlJlYWRNY3BSZXNvdXJjZVN1Y2Nlc3MSCwoDdXJpGAEgASgJEhEKBG5hbWUYAiABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgCiAEBEhYKCW1pbWVfdHlwZRgEIAEoCUgDiAEBEkYKC2Fubm90YXRpb25zGAcgAygLMjEuYWdlbnQudjEuUmVhZE1jcFJlc291cmNlU3VjY2Vzcy5Bbm5vdGF0aW9uc0VudHJ5EhoKDWRvd25sb2FkX3BhdGgYCCABKAlIBIgBARIOCgR0ZXh0GAUgASgJSAASDgoEYmxvYhgGIAEoDEgAEjYKD291dHB1dF9sb2NhdGlvbhgJIAEoCzIYLmFnZW50LnYxLk91dHB1dExvY2F0aW9uSAWIAQEaMgoQQW5ub3RhdGlvbnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgkKB2NvbnRlbnRCBwoFX25hbWVCDgoMX2Rlc2NyaXB0aW9uQgwKCl9taW1lX3R5cGVCEAoOX2Rvd25sb2FkX3BhdGhCEgoQX291dHB1dF9sb2NhdGlvbiIyChRSZWFkTWNwUmVzb3VyY2VFcnJvchILCgN1cmkYASABKAkSDQoFZXJyb3IYAiABKAkiNgoXUmVhZE1jcFJlc291cmNlUmVqZWN0ZWQSCwoDdXJpGAEgASgJEg4KBnJlYXNvbhgCIAEoCSImChdSZWFkTWNwUmVzb3VyY2VOb3RGb3VuZBILCgN1cmkYASABKAkisgEKEU1jcFRvb2xEZWZpbml0aW9uEgwKBG5hbWUYASABKAkSGwoTcHJvdmlkZXJfaWRlbnRpZmllchgEIAEoCRIRCgl0b29sX25hbWUYBSABKAkSEwoLZGVzY3JpcHRpb24YAiABKAkSFAoMaW5wdXRfc2NoZW1hGAMgASgMEh4KEWlucHV0X3NjaGVtYV9qc29uGAYgASgJSACIAQFCFAoSX2lucHV0X3NjaGVtYV9qc29uIjoKCE1jcFRvb2xzEi4KCW1jcF90b29scxgBIAMoCzIbLmFnZW50LnYxLk1jcFRvb2xEZWZpbml0aW9uIlcKD01jcEluc3RydWN0aW9ucxITCgtzZXJ2ZXJfbmFtZRgBIAEoCRIUCgxpbnN0cnVjdGlvbnMYAiABKAkSGQoRc2VydmVyX2lkZW50aWZpZXIYAyABKAki/QIKDU1jcERlc2NyaXB0b3ISEwoLc2VydmVyX25hbWUYASABKAkSGQoRc2VydmVyX2lkZW50aWZpZXIYAiABKAkSGAoLZm9sZGVyX3BhdGgYAyABKAlIAIgBARIkChdzZXJ2ZXJfdXNlX2luc3RydWN0aW9ucxgEIAEoCUgBiAEBEioKBXRvb2xzGAUgAygLMhsuYWdlbnQudjEuTWNwVG9vbERlc2NyaXB0b3ISEwoGcGx1Z2luGAcgASgJSAKIAQESGAoLbWFya2V0cGxhY2UYCCABKAlIA4gBARIZCgxwbHVnaW5fZGJfaWQYCSABKAlIBIgBARIbCg5tYXJrZXRwbGFjZV9pZBgKIAEoCUgFiAEBQg4KDF9mb2xkZXJfcGF0aEIaChhfc2VydmVyX3VzZV9pbnN0cnVjdGlvbnNCCQoHX3BsdWdpbkIOCgxfbWFya2V0cGxhY2VCDwoNX3BsdWdpbl9kYl9pZEIRCg9fbWFya2V0cGxhY2VfaWQiuAEKEU1jcFRvb2xEZXNjcmlwdG9yEhEKCXRvb2xfbmFtZRgBIAEoCRIcCg9kZWZpbml0aW9uX3BhdGgYAiABKAlIAIgBARIYCgtkZXNjcmlwdGlvbhgDIAEoCUgBiAEBEh4KEWlucHV0X3NjaGVtYV9qc29uGAUgASgJSAKIAQFCEgoQX2RlZmluaXRpb25fcGF0aEIOCgxfZGVzY3JpcHRpb25CFAoSX2lucHV0X3NjaGVtYV9qc29uIngKFE1jcEZpbGVTeXN0ZW1PcHRpb25zEg8KB2VuYWJsZWQYASABKAgSHQoVd29ya3NwYWNlX3Byb2plY3RfZGlyGAIgASgJEjAKD21jcF9kZXNjcmlwdG9ycxgDIAMoCzIXLmFnZW50LnYxLk1jcERlc2NyaXB0b3IimgEKCFJlYWRBcmdzEgwKBHBhdGgYASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJEhMKBm9mZnNldBgEIAEoBUgAiAEBEhIKBWxpbWl0GAUgASgNSAGIAQESGgoNZW5jb2RpbmdfaGludBgGIAEoCUgCiAEBQgkKB19vZmZzZXRCCAoGX2xpbWl0QhAKDl9lbmNvZGluZ19oaW50IrgCCgpSZWFkUmVzdWx0EigKB3N1Y2Nlc3MYASABKAsyFS5hZ2VudC52MS5SZWFkU3VjY2Vzc0gAEiQKBWVycm9yGAIgASgLMhMuYWdlbnQudjEuUmVhZEVycm9ySAASKgoIcmVqZWN0ZWQYAyABKAsyFi5hZ2VudC52MS5SZWFkUmVqZWN0ZWRIABI0Cg5maWxlX25vdF9mb3VuZBgEIAEoCzIaLmFnZW50LnYxLlJlYWRGaWxlTm90Rm91bmRIABI7ChFwZXJtaXNzaW9uX2RlbmllZBgFIAEoCzIeLmFnZW50LnYxLlJlYWRQZXJtaXNzaW9uRGVuaWVkSAASMQoMaW52YWxpZF9maWxlGAYgASgLMhkuYWdlbnQudjEuUmVhZEludmFsaWRGaWxlSABCCAoGcmVzdWx0IsoBCgtSZWFkU3VjY2VzcxIMCgRwYXRoGAEgASgJEhMKC3RvdGFsX2xpbmVzGAMgASgFEhEKCWZpbGVfc2l6ZRgEIAEoAxIRCgl0cnVuY2F0ZWQYBiABKAgSGwoOb3V0cHV0X2Jsb2JfaWQYByABKAxIAYgBARIRCgdjb250ZW50GAIgASgJSAASDgoEZGF0YRgFIAEoDEgAEhUKDXJhbmdlX2FwcGxpZWQYCCABKAhCCAoGb3V0cHV0QhEKD19vdXRwdXRfYmxvYl9pZCIoCglSZWFkRXJyb3ISDAoEcGF0aBgBIAEoCRINCgVlcnJvchgCIAEoCSIsCgxSZWFkUmVqZWN0ZWQSDAoEcGF0aBgBIAEoCRIOCgZyZWFzb24YAiABKAkiIAoQUmVhZEZpbGVOb3RGb3VuZBIMCgRwYXRoGAEgASgJIiQKFFJlYWRQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkiLwoPUmVhZEludmFsaWRGaWxlEgwKBHBhdGgYASABKAkSDgoGcmVhc29uGAIgASgJIl4KDFJlYWRUb29sQ2FsbBIkCgRhcmdzGAEgASgLMhYuYWdlbnQudjEuUmVhZFRvb2xBcmdzEigKBnJlc3VsdBgCIAEoCzIYLmFnZW50LnYxLlJlYWRUb29sUmVzdWx0IloKDFJlYWRUb29sQXJncxIMCgRwYXRoGAEgASgJEhMKBm9mZnNldBgCIAEoBUgAiAEBEhIKBWxpbWl0GAMgASgFSAGIAQFCCQoHX29mZnNldEIICgZfbGltaXQicgoOUmVhZFRvb2xSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLlJlYWRUb29sU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuUmVhZFRvb2xFcnJvckgAQggKBnJlc3VsdCIxCglSZWFkUmFuZ2USEgoKc3RhcnRfbGluZRgBIAEoDRIQCghlbmRfbGluZRgCIAEoDSKOAgoPUmVhZFRvb2xTdWNjZXNzEhAKCGlzX2VtcHR5GAIgASgIEhYKDmV4Y2VlZGVkX2xpbWl0GAMgASgIEhMKC3RvdGFsX2xpbmVzGAQgASgNEhEKCWZpbGVfc2l6ZRgFIAEoDRIMCgRwYXRoGAcgASgJEiwKCnJlYWRfcmFuZ2UYCCABKAsyEy5hZ2VudC52MS5SZWFkUmFuZ2VIAYgBARIRCgdjb250ZW50GAEgASgJSAASDgoEZGF0YRgGIAEoDEgAEhYKDGRhdGFfYmxvYl9pZBgJIAEoDEgAEhkKD2NvbnRlbnRfYmxvYl9pZBgKIAEoDEgAQggKBm91dHB1dEINCgtfcmVhZF9yYW5nZSImCg1SZWFkVG9vbEVycm9yEhUKDWVycm9yX21lc3NhZ2UYASABKAkiagoQUmVjb3JkU2NyZWVuQXJncxIMCgRtb2RlGAEgASgFEhQKDHRvb2xfY2FsbF9pZBgCIAEoCRIdChBzYXZlX2FzX2ZpbGVuYW1lGAMgASgJSACIAQFCEwoRX3NhdmVfYXNfZmlsZW5hbWUiiQIKElJlY29yZFNjcmVlblJlc3VsdBI7Cg1zdGFydF9zdWNjZXNzGAEgASgLMiIuYWdlbnQudjEuUmVjb3JkU2NyZWVuU3RhcnRTdWNjZXNzSAASOQoMc2F2ZV9zdWNjZXNzGAIgASgLMiEuYWdlbnQudjEuUmVjb3JkU2NyZWVuU2F2ZVN1Y2Nlc3NIABI/Cg9kaXNjYXJkX3N1Y2Nlc3MYAyABKAsyJC5hZ2VudC52MS5SZWNvcmRTY3JlZW5EaXNjYXJkU3VjY2Vzc0gAEjAKB2ZhaWx1cmUYBCABKAsyHS5hZ2VudC52MS5SZWNvcmRTY3JlZW5GYWlsdXJlSABCCAoGcmVzdWx0ImcKGFJlY29yZFNjcmVlblN0YXJ0U3VjY2VzcxIlCh13YXNfcHJpb3JfcmVjb3JkaW5nX2NhbmNlbGxlZBgBIAEoCBIkChx3YXNfc2F2ZV9hc19maWxlbmFtZV9pZ25vcmVkGAIgASgIIqABChdSZWNvcmRTY3JlZW5TYXZlU3VjY2VzcxIMCgRwYXRoGAEgASgJEh0KFXJlY29yZGluZ19kdXJhdGlvbl9tcxgCIAEoAxIwCiNyZXF1ZXN0ZWRfZmlsZV9wYXRoX3JlamVjdGVkX3JlYXNvbhgDIAEoBUgAiAEBQiYKJF9yZXF1ZXN0ZWRfZmlsZV9wYXRoX3JlamVjdGVkX3JlYXNvbiIcChpSZWNvcmRTY3JlZW5EaXNjYXJkU3VjY2VzcyIkChNSZWNvcmRTY3JlZW5GYWlsdXJlEg0KBWVycm9yGAEgASgJIjYKE0N1cnNvclBhY2thZ2VQcm9tcHQSDAoEbmFtZRgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAki4gEKDUN1cnNvclBhY2thZ2USDAoEbmFtZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRITCgtmb2xkZXJfcGF0aBgDIAEoCRIPCgdlbmFibGVkGAQgASgIEhgKC3BhcnNlX2Vycm9yGAUgASgJSACIAQESLgoHcHJvbXB0cxgGIAMoCzIdLmFnZW50LnYxLkN1cnNvclBhY2thZ2VQcm9tcHQSGAoQcmVhZG1lX2ZpbGVfcGF0aBgHIAEoCRIUCgxwYWNrYWdlX3R5cGUYCCABKAVCDgoMX3BhcnNlX2Vycm9yIqsCChZSZXBvc2l0b3J5SW5kZXhpbmdJbmZvEh8KF3JlbGF0aXZlX3dvcmtzcGFjZV9wYXRoGAEgASgJEhMKC3JlbW90ZV91cmxzGAIgAygJEhQKDHJlbW90ZV9uYW1lcxgDIAMoCRIRCglyZXBvX25hbWUYBCABKAkSEgoKcmVwb19vd25lchgFIAEoCRISCgppc190cmFja2VkGAYgASgIEhAKCGlzX2xvY2FsGAcgASgIEiYKGW9ydGhvZ29uYWxfdHJhbnNmb3JtX3NlZWQYCCABKAFIAIgBARIVCg13b3Jrc3BhY2VfdXJpGAkgASgJEhsKE3BhdGhfZW5jcnlwdGlvbl9rZXkYCiABKAlCHAoaX29ydGhvZ29uYWxfdHJhbnNmb3JtX3NlZWQirAIKElJlcXVlc3RDb250ZXh0QXJncxIdChBub3Rlc19zZXNzaW9uX2lkGAIgASgJSACIAQESGQoMd29ya3NwYWNlX2lkGAMgASgJSAGIAQESJgoZcmVhZF9vbmx5X3Bpbm5lZF90cmVlX3NoYRgEIAEoCUgCiAEBEigKG3JlYWRfb25seV9wbHVnaW5fY2FjaGVfcm9vdBgFIAEoCUgDiAEBEhcKCnVzZV9jYWNoZWQYByABKAhIBIgBAUITChFfbm90ZXNfc2Vzc2lvbl9pZEIPCg1fd29ya3NwYWNlX2lkQhwKGl9yZWFkX29ubHlfcGlubmVkX3RyZWVfc2hhQh4KHF9yZWFkX29ubHlfcGx1Z2luX2NhY2hlX3Jvb3RCDQoLX3VzZV9jYWNoZWQiugEKFFJlcXVlc3RDb250ZXh0UmVzdWx0EjIKB3N1Y2Nlc3MYASABKAsyHy5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dFN1Y2Nlc3NIABIuCgVlcnJvchgCIAEoCzIdLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0RXJyb3JIABI0CghyZWplY3RlZBgDIAEoCzIgLmFnZW50LnYxLlJlcXVlc3RDb250ZXh0UmVqZWN0ZWRIAEIICgZyZXN1bHQiigEKFVJlcXVlc3RDb250ZXh0U3VjY2VzcxIxCg9yZXF1ZXN0X2NvbnRleHQYASABKAsyGC5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dBIjChZzZXJ2ZWRfZnJvbV9kaXNrX2NhY2hlGAIgASgISACIAQFCGQoXX3NlcnZlZF9mcm9tX2Rpc2tfY2FjaGUiJAoTUmVxdWVzdENvbnRleHRFcnJvchINCgVlcnJvchgBIAEoCSIoChZSZXF1ZXN0Q29udGV4dFJlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSLCAQoKSW1hZ2VQcm90bxIMCgRkYXRhGAEgASgMEgwKBHV1aWQYAiABKAkSDAoEcGF0aBgDIAEoCRIxCglkaW1lbnNpb24YBCABKAsyHi5hZ2VudC52MS5JbWFnZVByb3RvX0RpbWVuc2lvbhImChl0YXNrX3NwZWNpZmljX2Rlc2NyaXB0aW9uGAYgASgJSACIAQESEQoJbWltZV90eXBlGAcgASgJQhwKGl90YXNrX3NwZWNpZmljX2Rlc2NyaXB0aW9uIjUKFEltYWdlUHJvdG9fRGltZW5zaW9uEg0KBXdpZHRoGAEgASgFEg4KBmhlaWdodBgCIAEoBSJoCgtHaXRSZXBvSW5mbxIMCgRwYXRoGAEgASgJEg4KBnN0YXR1cxgCIAEoCRITCgticmFuY2hfbmFtZRgDIAEoCRIXCgpyZW1vdGVfdXJsGAQgASgJSACIAQFCDQoLX3JlbW90ZV91cmwimwIKEVJlcXVlc3RDb250ZXh0RW52EhIKCm9zX3ZlcnNpb24YASABKAkSFwoPd29ya3NwYWNlX3BhdGhzGAIgAygJEg0KBXNoZWxsGAMgASgJEhcKD3NhbmRib3hfZW5hYmxlZBgFIAEoCBIYChB0ZXJtaW5hbHNfZm9sZGVyGAcgASgJEiEKGWFnZW50X3NoYXJlZF9ub3Rlc19mb2xkZXIYCCABKAkSJwofYWdlbnRfY29udmVyc2F0aW9uX25vdGVzX2ZvbGRlchgJIAEoCRIRCgl0aW1lX3pvbmUYCiABKAkSFgoOcHJvamVjdF9mb2xkZXIYCyABKAkSIAoYYWdlbnRfdHJhbnNjcmlwdHNfZm9sZGVyGAwgASgJIjwKD0RlYnVnTW9kZUNvbmZpZxIQCghsb2dfcGF0aBgBIAEoCRIXCg9zZXJ2ZXJfZW5kcG9pbnQYAiABKAkitAEKD1NraWxsRGVzY3JpcHRvchIMCgRuYW1lGAEgASgJEhMKC2Rlc2NyaXB0aW9uGAIgASgJEhMKC2ZvbGRlcl9wYXRoGAMgASgJEg8KB2VuYWJsZWQYBCABKAgSGAoLcGFyc2VfZXJyb3IYBSABKAlIAIgBARIYChByZWFkbWVfZmlsZV9wYXRoGAYgASgJEhQKDHBhY2thZ2VfdHlwZRgHIAEoBUIOCgxfcGFyc2VfZXJyb3IiRAoMU2tpbGxPcHRpb25zEjQKEXNraWxsX2Rlc2NyaXB0b3JzGAEgAygLMhkuYWdlbnQudjEuU2tpbGxEZXNjcmlwdG9yIvYICg5SZXF1ZXN0Q29udGV4dBIjCgVydWxlcxgCIAMoCzIULmFnZW50LnYxLkN1cnNvclJ1bGUSKAoDZW52GAQgASgLMhsuYWdlbnQudjEuUmVxdWVzdENvbnRleHRFbnYSOQoPcmVwb3NpdG9yeV9pbmZvGAYgAygLMiAuYWdlbnQudjEuUmVwb3NpdG9yeUluZGV4aW5nSW5mbxIqCgV0b29scxgHIAMoCzIbLmFnZW50LnYxLk1jcFRvb2xEZWZpbml0aW9uEicKGmNvbnZlcnNhdGlvbl9ub3Rlc19saXN0aW5nGAggASgJSACIAQESIQoUc2hhcmVkX25vdGVzX2xpc3RpbmcYCSABKAlIAYgBARIoCglnaXRfcmVwb3MYCyADKAsyFS5hZ2VudC52MS5HaXRSZXBvSW5mbxI2Cg9wcm9qZWN0X2xheW91dHMYDSADKAsyHS5hZ2VudC52MS5Mc0RpcmVjdG9yeVRyZWVOb2RlEjMKEG1jcF9pbnN0cnVjdGlvbnMYDiADKAsyGS5hZ2VudC52MS5NY3BJbnN0cnVjdGlvbnMSOQoRZGVidWdfbW9kZV9jb25maWcYDyABKAsyGS5hZ2VudC52MS5EZWJ1Z01vZGVDb25maWdIAogBARIXCgpjbG91ZF9ydWxlGBAgASgJSAOIAQESHwoSd2ViX3NlYXJjaF9lbmFibGVkGBEgASgISASIAQESMgoNc2tpbGxfb3B0aW9ucxgSIAEoCzIWLmFnZW50LnYxLlNraWxsT3B0aW9uc0gFiAEBEi4KIXJlcG9zaXRvcnlfaW5mb19zaG91bGRfcXVlcnlfcHJvZBgTIAEoCEgGiAEBEkEKDWZpbGVfY29udGVudHMYFCADKAsyKi5hZ2VudC52MS5SZXF1ZXN0Q29udGV4dC5GaWxlQ29udGVudHNFbnRyeRIgChN1c2VyX2ludGVudF9zdW1tYXJ5GBUgASgJSAeIAQESMgoQY3VzdG9tX3N1YmFnZW50cxgWIAMoCzIYLmFnZW50LnYxLkN1c3RvbVN1YmFnZW50EkQKF21jcF9maWxlX3N5c3RlbV9vcHRpb25zGBcgASgLMh4uYWdlbnQudjEuTWNwRmlsZVN5c3RlbU9wdGlvbnNICIgBARozChFGaWxlQ29udGVudHNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQh0KG19jb252ZXJzYXRpb25fbm90ZXNfbGlzdGluZ0IXChVfc2hhcmVkX25vdGVzX2xpc3RpbmdCFAoSX2RlYnVnX21vZGVfY29uZmlnQg0KC19jbG91ZF9ydWxlQhUKE193ZWJfc2VhcmNoX2VuYWJsZWRCEAoOX3NraWxsX29wdGlvbnNCJAoiX3JlcG9zaXRvcnlfaW5mb19zaG91bGRfcXVlcnlfcHJvZEIWChRfdXNlcl9pbnRlbnRfc3VtbWFyeUIaChhfbWNwX2ZpbGVfc3lzdGVtX29wdGlvbnMisgIKDVNhbmRib3hQb2xpY3kSDAoEdHlwZRgBIAEoBRIbCg5uZXR3b3JrX2FjY2VzcxgCIAEoCEgAiAEBEiIKGmFkZGl0aW9uYWxfcmVhZHdyaXRlX3BhdGhzGAMgAygJEiEKGWFkZGl0aW9uYWxfcmVhZG9ubHlfcGF0aHMYBCADKAkSHQoQZGVidWdfb3V0cHV0X2RpchgFIAEoCUgBiAEBEh0KEGJsb2NrX2dpdF93cml0ZXMYBiABKAhIAogBARIeChFkaXNhYmxlX3RtcF93cml0ZRgHIAEoCEgDiAEBQhEKD19uZXR3b3JrX2FjY2Vzc0ITChFfZGVidWdfb3V0cHV0X2RpckITChFfYmxvY2tfZ2l0X3dyaXRlc0IUChJfZGlzYWJsZV90bXBfd3JpdGUi7wEKDVNlbGVjdGVkSW1hZ2USDAoEdXVpZBgCIAEoCRIMCgRwYXRoGAMgASgJEjQKCWRpbWVuc2lvbhgEIAEoCzIhLmFnZW50LnYxLlNlbGVjdGVkSW1hZ2VfRGltZW5zaW9uEhEKCW1pbWVfdHlwZRgHIAEoCRIRCgdibG9iX2lkGAEgASgMSAASDgoEZGF0YRgIIAEoDEgAEkMKEWJsb2JfaWRfd2l0aF9kYXRhGAkgASgLMiYuYWdlbnQudjEuU2VsZWN0ZWRJbWFnZV9CbG9iSWRXaXRoRGF0YUgAQhEKD2RhdGFfb3JfYmxvYl9pZCI9ChxTZWxlY3RlZEltYWdlX0Jsb2JJZFdpdGhEYXRhEg8KB2Jsb2JfaWQYASABKAwSDAoEZGF0YRgCIAEoDCI4ChdTZWxlY3RlZEltYWdlX0RpbWVuc2lvbhINCgV3aWR0aBgBIAEoBRIOCgZoZWlnaHQYAiABKAUiSQoRRXh0cmFDb250ZXh0RW50cnkSDgoEZGF0YRgBIAEoCUgAEhEKB2Jsb2JfaWQYAiABKAxIAEIRCg9kYXRhX29yX2Jsb2JfaWQiWwoMU2VsZWN0ZWRGaWxlEg8KB2NvbnRlbnQYASABKAkSDAoEcGF0aBgCIAEoCRIaCg1yZWxhdGl2ZV9wYXRoGAMgASgJSACIAQFCEAoOX3JlbGF0aXZlX3BhdGgihAEKFVNlbGVjdGVkQ29kZVNlbGVjdGlvbhIPCgdjb250ZW50GAEgASgJEgwKBHBhdGgYAiABKAkSGgoNcmVsYXRpdmVfcGF0aBgDIAEoCUgAiAEBEh4KBXJhbmdlGAQgASgLMg8uYWdlbnQudjEuUmFuZ2VCEAoOX3JlbGF0aXZlX3BhdGgiXQoQU2VsZWN0ZWRUZXJtaW5hbBIPCgdjb250ZW50GAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESEQoEcGF0aBgDIAEoCUgBiAEBQggKBl90aXRsZUIHCgVfcGF0aCKGAQoZU2VsZWN0ZWRUZXJtaW5hbFNlbGVjdGlvbhIPCgdjb250ZW50GAEgASgJEhIKBXRpdGxlGAIgASgJSACIAQESEQoEcGF0aBgDIAEoCUgBiAEBEh4KBXJhbmdlGAQgASgLMg8uYWdlbnQudjEuUmFuZ2VCCAoGX3RpdGxlQgcKBV9wYXRoIoMBCg5TZWxlY3RlZEZvbGRlchIMCgRwYXRoGAEgASgJEhoKDXJlbGF0aXZlX3BhdGgYAiABKAlIAIgBARI1Cg5kaXJlY3RvcnlfdHJlZRgDIAEoCzIdLmFnZW50LnYxLkxzRGlyZWN0b3J5VHJlZU5vZGVCEAoOX3JlbGF0aXZlX3BhdGginwEKFFNlbGVjdGVkRXh0ZXJuYWxMaW5rEgsKA3VybBgBIAEoCRIMCgR1dWlkGAIgASgJEhgKC3BkZl9jb250ZW50GAMgASgJSACIAQESEwoGaXNfcGRmGAQgASgISAGIAQESFQoIZmlsZW5hbWUYBSABKAlIAogBAUIOCgxfcGRmX2NvbnRlbnRCCQoHX2lzX3BkZkILCglfZmlsZW5hbWUiOAoSU2VsZWN0ZWRDdXJzb3JSdWxlEiIKBHJ1bGUYASABKAsyFC5hZ2VudC52MS5DdXJzb3JSdWxlIiIKD1NlbGVjdGVkR2l0RGlmZhIPCgdjb250ZW50GAEgASgJIjIKH1NlbGVjdGVkR2l0RGlmZkZyb21CcmFuY2hUb01haW4SDwoHY29udGVudBgBIAEoCSJpChFTZWxlY3RlZEdpdENvbW1pdBILCgNzaGEYASABKAkSDwoHbWVzc2FnZRgCIAEoCRIYCgtkZXNjcmlwdGlvbhgDIAEoCUgAiAEBEgwKBGRpZmYYBCABKAlCDgoMX2Rlc2NyaXB0aW9uIt0BChNTZWxlY3RlZFB1bGxSZXF1ZXN0Eg4KBm51bWJlchgBIAEoBRILCgN1cmwYAiABKAkSEgoFdGl0bGUYAyABKAlIAIgBARITCgtmb2xkZXJfcGF0aBgEIAEoCRIZCgxzdW1tYXJ5X2pzb24YBSABKAlIAYgBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgCiAEBEhQKB2Jsb2JfaWQYByABKAxIA4gBAUIICgZfdGl0bGVCDwoNX3N1bW1hcnlfanNvbkIOCgxfZGVzY3JpcHRpb25CCgoIX2Jsb2JfaWQiswEKGlNlbGVjdGVkR2l0UFJEaWZmU2VsZWN0aW9uEg4KBnByX3VybBgBIAEoCRIRCglmaWxlX3BhdGgYAiABKAkSEgoKc3RhcnRfbGluZRgDIAEoBRIQCghlbmRfbGluZRgEIAEoBRIZCgxkaWZmX2NvbnRlbnQYBSABKAlIAIgBARIUCgdibG9iX2lkGAYgASgMSAGIAQFCDwoNX2RpZmZfY29udGVudEIKCghfYmxvYl9pZCI2ChVTZWxlY3RlZEN1cnNvckNvbW1hbmQSDAoEbmFtZRgBIAEoCRIPCgdjb250ZW50GAIgASgJIjUKFVNlbGVjdGVkRG9jdW1lbnRhdGlvbhIOCgZkb2NfaWQYASABKAkSDAoEbmFtZRgCIAEoCSIyChBTZWxlY3RlZFBhc3RDaGF0EhAKCGFnZW50X2lkGAEgASgJEgwKBG5hbWUYAiABKAkiqwEKCUNhbGxGcmFtZRIaCg1mdW5jdGlvbl9uYW1lGAEgASgJSACIAQESEAoDdXJsGAIgASgJSAGIAQESGAoLbGluZV9udW1iZXIYAyABKAVIAogBARIaCg1jb2x1bW5fbnVtYmVyGAQgASgFSAOIAQFCEAoOX2Z1bmN0aW9uX25hbWVCBgoEX3VybEIOCgxfbGluZV9udW1iZXJCEAoOX2NvbHVtbl9udW1iZXIiaAoKU3RhY2tUcmFjZRIoCgtjYWxsX2ZyYW1lcxgBIAMoCzITLmFnZW50LnYxLkNhbGxGcmFtZRIcCg9yYXdfc3RhY2tfdHJhY2UYAiABKAlIAIgBAUISChBfcmF3X3N0YWNrX3RyYWNlIuQBChJTZWxlY3RlZENvbnNvbGVMb2cSDwoHbWVzc2FnZRgBIAEoCRIRCgl0aW1lc3RhbXAYAiABKAESDQoFbGV2ZWwYAyABKAkSEwoLY2xpZW50X25hbWUYBCABKAkSEgoKc2Vzc2lvbl9pZBgFIAEoCRIuCgtzdGFja190cmFjZRgGIAEoCzIULmFnZW50LnYxLlN0YWNrVHJhY2VIAIgBARIdChBvYmplY3RfZGF0YV9qc29uGAcgASgJSAGIAQFCDgoMX3N0YWNrX3RyYWNlQhMKEV9vYmplY3RfZGF0YV9qc29uIroBChFTZWxlY3RlZFVJRWxlbWVudBIPCgdlbGVtZW50GAEgASgJEg0KBXhwYXRoGAIgASgJEhQKDHRleHRfY29udGVudBgDIAEoCRINCgVleHRyYRgEIAEoCRIWCgljb21wb25lbnQYBSABKAlIAIgBARIhChRjb21wb25lbnRfcHJvcHNfanNvbhgGIAEoCUgBiAEBQgwKCl9jb21wb25lbnRCFwoVX2NvbXBvbmVudF9wcm9wc19qc29uIiAKEFNlbGVjdGVkU3ViYWdlbnQSDAoEbmFtZRgBIAEoCSKCCgoPU2VsZWN0ZWRDb250ZXh0EjAKD3NlbGVjdGVkX2ltYWdlcxgBIAMoCzIXLmFnZW50LnYxLlNlbGVjdGVkSW1hZ2USPAoSaW52b2NhdGlvbl9jb250ZXh0GAIgASgLMhsuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRIAIgBARIVCg1leHRyYV9jb250ZXh0GAMgAygJEjoKFWV4dHJhX2NvbnRleHRfZW50cmllcxgQIAMoCzIbLmFnZW50LnYxLkV4dHJhQ29udGV4dEVudHJ5EiUKBWZpbGVzGAQgAygLMhYuYWdlbnQudjEuU2VsZWN0ZWRGaWxlEjgKD2NvZGVfc2VsZWN0aW9ucxgFIAMoCzIfLmFnZW50LnYxLlNlbGVjdGVkQ29kZVNlbGVjdGlvbhItCgl0ZXJtaW5hbHMYBiADKAsyGi5hZ2VudC52MS5TZWxlY3RlZFRlcm1pbmFsEkAKE3Rlcm1pbmFsX3NlbGVjdGlvbnMYByADKAsyIy5hZ2VudC52MS5TZWxlY3RlZFRlcm1pbmFsU2VsZWN0aW9uEikKB2ZvbGRlcnMYCCADKAsyGC5hZ2VudC52MS5TZWxlY3RlZEZvbGRlchI2Cg5leHRlcm5hbF9saW5rcxgJIAMoCzIeLmFnZW50LnYxLlNlbGVjdGVkRXh0ZXJuYWxMaW5rEjIKDGN1cnNvcl9ydWxlcxgKIAMoCzIcLmFnZW50LnYxLlNlbGVjdGVkQ3Vyc29yUnVsZRIwCghnaXRfZGlmZhgSIAEoCzIZLmFnZW50LnYxLlNlbGVjdGVkR2l0RGlmZkgBiAEBElQKHGdpdF9kaWZmX2Zyb21fYnJhbmNoX3RvX21haW4YCyABKAsyKS5hZ2VudC52MS5TZWxlY3RlZEdpdERpZmZGcm9tQnJhbmNoVG9NYWluSAKIAQESOAoPY3Vyc29yX2NvbW1hbmRzGAwgAygLMh8uYWdlbnQudjEuU2VsZWN0ZWRDdXJzb3JDb21tYW5kEjcKDmRvY3VtZW50YXRpb25zGA0gAygLMh8uYWdlbnQudjEuU2VsZWN0ZWREb2N1bWVudGF0aW9uEjAKC3VpX2VsZW1lbnRzGA4gAygLMhsuYWdlbnQudjEuU2VsZWN0ZWRVSUVsZW1lbnQSMgoMY29uc29sZV9sb2dzGA8gAygLMhwuYWdlbnQudjEuU2VsZWN0ZWRDb25zb2xlTG9nEjAKC2dpdF9jb21taXRzGBEgAygLMhsuYWdlbnQudjEuU2VsZWN0ZWRHaXRDb21taXQSLgoKcGFzdF9jaGF0cxgTIAMoCzIaLmFnZW50LnYxLlNlbGVjdGVkUGFzdENoYXQSRAoWZ2l0X3ByX2RpZmZfc2VsZWN0aW9ucxgUIAMoCzIkLmFnZW50LnYxLlNlbGVjdGVkR2l0UFJEaWZmU2VsZWN0aW9uEj0KFnNlbGVjdGVkX3B1bGxfcmVxdWVzdHMYFSADKAsyHS5hZ2VudC52MS5TZWxlY3RlZFB1bGxSZXF1ZXN0EjYKEnNlbGVjdGVkX3N1YmFnZW50cxgWIAMoCzIaLmFnZW50LnYxLlNlbGVjdGVkU3ViYWdlbnRCFQoTX2ludm9jYXRpb25fY29udGV4dEILCglfZ2l0X2RpZmZCHwodX2dpdF9kaWZmX2Zyb21fYnJhbmNoX3RvX21haW4i5QEKEUludm9jYXRpb25Db250ZXh0Ej8KDHNsYWNrX3RocmVhZBgBIAEoCzInLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X1NsYWNrVGhyZWFkSAASOQoJZ2l0aHViX3ByGAIgASgLMiQuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRfR2l0aHViUFJIABI5CglpZGVfc3RhdGUYAyABKAsyJC5hZ2VudC52MS5JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZUgAEhEKB2Jsb2JfaWQYCiABKAxIAEIGCgRkYXRhIrsBCh1JbnZvY2F0aW9uQ29udGV4dF9TbGFja1RocmVhZBIOCgZ0aHJlYWQYASABKAkSGQoMY2hhbm5lbF9uYW1lGAIgASgJSACIAQESHAoPY2hhbm5lbF9wdXJwb3NlGAMgASgJSAGIAQESGgoNY2hhbm5lbF90b3BpYxgEIAEoCUgCiAEBQg8KDV9jaGFubmVsX25hbWVCEgoQX2NoYW5uZWxfcHVycG9zZUIQCg5fY2hhbm5lbF90b3BpYyJ8ChpJbnZvY2F0aW9uQ29udGV4dF9HaXRodWJQUhINCgV0aXRsZRgBIAEoCRITCgtkZXNjcmlwdGlvbhgCIAEoCRIQCghjb21tZW50cxgDIAEoCRIYCgtjaV9mYWlsdXJlcxgEIAEoCUgAiAEBQg4KDF9jaV9mYWlsdXJlcyL+AQoaSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGUSQAoNdmlzaWJsZV9maWxlcxgBIAMoCzIpLmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGUSSAoVcmVjZW50bHlfdmlld2VkX2ZpbGVzGAIgAygLMikuYWdlbnQudjEuSW52b2NhdGlvbkNvbnRleHRfSWRlU3RhdGVfRmlsZRJUChRjdXJyZW50bHlfdmlld2VkX3BycxgDIAMoCzI2LmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX1ZpZXdlZFB1bGxSZXF1ZXN0Io4CCh9JbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9GaWxlEgwKBHBhdGgYASABKAkSGgoNcmVsYXRpdmVfcGF0aBgCIAEoCUgAiAEBElYKD2N1cnNvcl9wb3NpdGlvbhgDIAEoCzI4LmFnZW50LnYxLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGVfQ3Vyc29yUG9zaXRpb25IAYgBARITCgt0b3RhbF9saW5lcxgEIAEoBRIbCg5hY3RpdmVfY29tbWFuZBgFIAEoCUgCiAEBQhAKDl9yZWxhdGl2ZV9wYXRoQhIKEF9jdXJzb3JfcG9zaXRpb25CEQoPX2FjdGl2ZV9jb21tYW5kIkwKLkludm9jYXRpb25Db250ZXh0X0lkZVN0YXRlX0ZpbGVfQ3Vyc29yUG9zaXRpb24SDAoEbGluZRgBIAEoBRIMCgR0ZXh0GAIgASgJIukBCixJbnZvY2F0aW9uQ29udGV4dF9JZGVTdGF0ZV9WaWV3ZWRQdWxsUmVxdWVzdBIOCgZudW1iZXIYASABKAUSCwoDdXJsGAIgASgJEhIKBXRpdGxlGAMgASgJSACIAQESGAoLZm9sZGVyX3BhdGgYBCABKAlIAYgBARIZCgxzdW1tYXJ5X2pzb24YBSABKAlIAogBARIYCgtkZXNjcmlwdGlvbhgGIAEoCUgDiAEBQggKBl90aXRsZUIOCgxfZm9sZGVyX3BhdGhCDwoNX3N1bW1hcnlfanNvbkIOCgxfZGVzY3JpcHRpb24iSAoWU2V0dXBWbUVudmlyb25tZW50QXJncxIXCg9pbnN0YWxsX2NvbW1hbmQYAiABKAkSFQoNc3RhcnRfY29tbWFuZBgDIAEoCSJcChhTZXR1cFZtRW52aXJvbm1lbnRSZXN1bHQSNgoHc3VjY2VzcxgBIAEoCzIjLmFnZW50LnYxLlNldHVwVm1FbnZpcm9ubWVudFN1Y2Nlc3NIAEIICgZyZXN1bHQiGwoZU2V0dXBWbUVudmlyb25tZW50U3VjY2VzcyKAAQoaU2V0dXBWbUVudmlyb25tZW50VG9vbENhbGwSLgoEYXJncxgBIAEoCzIgLmFnZW50LnYxLlNldHVwVm1FbnZpcm9ubWVudEFyZ3MSMgoGcmVzdWx0GAIgASgLMiIuYWdlbnQudjEuU2V0dXBWbUVudmlyb25tZW50UmVzdWx0IskCChlTaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0EhYKDnBhcnNpbmdfZmFpbGVkGAEgASgIElIKE2V4ZWN1dGFibGVfY29tbWFuZHMYAiADKAsyNS5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0X0V4ZWN1dGFibGVDb21tYW5kEhUKDWhhc19yZWRpcmVjdHMYAyABKAgSIAoYaGFzX2NvbW1hbmRfc3Vic3RpdHV0aW9uGAQgASgIEicKGmFsbF9yZWRpcmVjdHNfYXJlX2Rldl9udWxsGAUgASgISACIAQESPwoJcmVkaXJlY3RzGAYgAygLMiwuYWdlbnQudjEuU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdF9SZWRpcmVjdEIdChtfYWxsX3JlZGlyZWN0c19hcmVfZGV2X251bGwiTQouU2hlbGxDb21tYW5kUGFyc2luZ1Jlc3VsdF9FeGVjdXRhYmxlQ29tbWFuZEFyZxIMCgR0eXBlGAEgASgJEg0KBXZhbHVlGAIgASgJIpYBCitTaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0X0V4ZWN1dGFibGVDb21tYW5kEgwKBG5hbWUYASABKAkSRgoEYXJncxgCIAMoCzI4LmFnZW50LnYxLlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHRfRXhlY3V0YWJsZUNvbW1hbmRBcmcSEQoJZnVsbF90ZXh0GAMgASgJIvoHCglTaGVsbEFyZ3MSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRIPCgd0aW1lb3V0GAMgASgFEhQKDHRvb2xfY2FsbF9pZBgEIAEoCRIXCg9zaW1wbGVfY29tbWFuZHMYBSADKAkSGgoSaGFzX2lucHV0X3JlZGlyZWN0GAYgASgIEhsKE2hhc19vdXRwdXRfcmVkaXJlY3QYByABKAgSOwoOcGFyc2luZ19yZXN1bHQYCCABKAsyIy5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0Ej4KGHJlcXVlc3RlZF9zYW5kYm94X3BvbGljeRgJIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIAIgBARIoChtmaWxlX291dHB1dF90aHJlc2hvbGRfYnl0ZXMYCiABKARIAYgBARIVCg1pc19iYWNrZ3JvdW5kGAsgASgIEhUKDXNraXBfYXBwcm92YWwYDCABKAgSGAoQdGltZW91dF9iZWhhdmlvchgNIAEoBRIZCgxoYXJkX3RpbWVvdXQYDiABKAVIAogBARIYCgtkZXNjcmlwdGlvbhgPIAEoCUgDiAEBEkEKEWNsYXNzaWZpZXJfcmVzdWx0GBAgASgLMiEuYWdlbnQudjEuQ29tbWFuZENsYXNzaWZpZXJSZXN1bHRIBIgBARITCgtjbG9zZV9zdGRpbhgRIAEoCBJJChNvdXRwdXRfbm90aWZpY2F0aW9uGBIgASgLMicuYWdlbnQudjEuU2hlbGxPdXRwdXROb3RpZmljYXRpb25Db25maWdIBYgBARI9ChNzbWFydF9tb2RlX2FwcHJvdmFsGBMgASgLMhsuYWdlbnQudjEuU21hcnRNb2RlQXBwcm92YWxIBogBARJOChlob29rX2FwcHJvdmFsX3JlcXVpcmVtZW50GBQgASgLMiYuYWdlbnQudjEuU2hlbGxIb29rQXBwcm92YWxSZXF1aXJlbWVudEgHiAEBEhwKD2NvbnZlcnNhdGlvbl9pZBgVIAEoCUgIiAEBQhsKGV9yZXF1ZXN0ZWRfc2FuZGJveF9wb2xpY3lCHgocX2ZpbGVfb3V0cHV0X3RocmVzaG9sZF9ieXRlc0IPCg1faGFyZF90aW1lb3V0Qg4KDF9kZXNjcmlwdGlvbkIUChJfY2xhc3NpZmllcl9yZXN1bHRCFgoUX291dHB1dF9ub3RpZmljYXRpb25CFgoUX3NtYXJ0X21vZGVfYXBwcm92YWxCHAoaX2hvb2tfYXBwcm92YWxfcmVxdWlyZW1lbnRCEgoQX2NvbnZlcnNhdGlvbl9pZCL6AwoLU2hlbGxSZXN1bHQSNAoOc2FuZGJveF9wb2xpY3kYZSABKAsyFy5hZ2VudC52MS5TYW5kYm94UG9saWN5SAGIAQESGgoNaXNfYmFja2dyb3VuZBhmIAEoCEgCiAEBEh0KEHRlcm1pbmFsc19mb2xkZXIYZyABKAlIA4gBARIQCgNwaWQYaCABKA1IBIgBARIpCgdzdWNjZXNzGAEgASgLMhYuYWdlbnQudjEuU2hlbGxTdWNjZXNzSAASKQoHZmFpbHVyZRgCIAEoCzIWLmFnZW50LnYxLlNoZWxsRmFpbHVyZUgAEikKB3RpbWVvdXQYAyABKAsyFi5hZ2VudC52MS5TaGVsbFRpbWVvdXRIABIrCghyZWplY3RlZBgEIAEoCzIXLmFnZW50LnYxLlNoZWxsUmVqZWN0ZWRIABIwCgtzcGF3bl9lcnJvchgFIAEoCzIZLmFnZW50LnYxLlNoZWxsU3Bhd25FcnJvckgAEjwKEXBlcm1pc3Npb25fZGVuaWVkGAcgASgLMh8uYWdlbnQudjEuU2hlbGxQZXJtaXNzaW9uRGVuaWVkSABCCAoGcmVzdWx0QhEKD19zYW5kYm94X3BvbGljeUIQCg5faXNfYmFja2dyb3VuZEITChFfdGVybWluYWxzX2ZvbGRlckIGCgRfcGlkIiEKEVNoZWxsU3RyZWFtU3Rkb3V0EgwKBGRhdGEYASABKAkiIQoRU2hlbGxTdHJlYW1TdGRlcnISDAoEZGF0YRgBIAEoCSL3AQoPU2hlbGxTdHJlYW1FeGl0EgwKBGNvZGUYASABKA0SCwoDY3dkGAIgASgJEjYKD291dHB1dF9sb2NhdGlvbhgDIAEoCzIYLmFnZW50LnYxLk91dHB1dExvY2F0aW9uSACIAQESDwoHYWJvcnRlZBgEIAEoCBIZCgxhYm9ydF9yZWFzb24YBSABKAVIAYgBARIkChdsb2NhbF9leGVjdXRpb25fdGltZV9tcxgGIAEoBUgCiAEBQhIKEF9vdXRwdXRfbG9jYXRpb25CDwoNX2Fib3J0X3JlYXNvbkIaChhfbG9jYWxfZXhlY3V0aW9uX3RpbWVfbXMiWwoQU2hlbGxTdHJlYW1TdGFydBI0Cg5zYW5kYm94X3BvbGljeRgBIAEoCzIXLmFnZW50LnYxLlNhbmRib3hQb2xpY3lIAIgBAUIRCg9fc2FuZGJveF9wb2xpY3ki2gEKF1NoZWxsU3RyZWFtQmFja2dyb3VuZGVkEhAKCHNoZWxsX2lkGAEgASgNEg8KB2NvbW1hbmQYAiABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAyABKAkSEAoDcGlkGAQgASgNSACIAQESFwoKbXNfdG9fd2FpdBgFIAEoBUgBiAEBEjQKBnJlYXNvbhgGIAEoDjIfLmFnZW50LnYxLlNoZWxsQmFja2dyb3VuZFJlYXNvbkgCiAEBQgYKBF9waWRCDQoLX21zX3RvX3dhaXRCCQoHX3JlYXNvbiKsAwoLU2hlbGxTdHJlYW0SLQoGc3Rkb3V0GAEgASgLMhsuYWdlbnQudjEuU2hlbGxTdHJlYW1TdGRvdXRIABItCgZzdGRlcnIYAiABKAsyGy5hZ2VudC52MS5TaGVsbFN0cmVhbVN0ZGVyckgAEikKBGV4aXQYAyABKAsyGS5hZ2VudC52MS5TaGVsbFN0cmVhbUV4aXRIABIrCgVzdGFydBgEIAEoCzIaLmFnZW50LnYxLlNoZWxsU3RyZWFtU3RhcnRIABIrCghyZWplY3RlZBgFIAEoCzIXLmFnZW50LnYxLlNoZWxsUmVqZWN0ZWRIABI8ChFwZXJtaXNzaW9uX2RlbmllZBgGIAEoCzIfLmFnZW50LnYxLlNoZWxsUGVybWlzc2lvbkRlbmllZEgAEjkKDGJhY2tncm91bmRlZBgHIAEoCzIhLmFnZW50LnYxLlNoZWxsU3RyZWFtQmFja2dyb3VuZGVkSAASOAoMaG9va19jb250ZXh0GAggASgLMiAuYWdlbnQudjEuU2hlbGxTdHJlYW1Ib29rQ29udGV4dEgAQgcKBWV2ZW50IksKDk91dHB1dExvY2F0aW9uEhEKCWZpbGVfcGF0aBgBIAEoCRISCgpzaXplX2J5dGVzGAIgASgDEhIKCmxpbmVfY291bnQYAyABKAMimAUKDFNoZWxsU3VjY2VzcxIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEhEKCWV4aXRfY29kZRgDIAEoBRIOCgZzaWduYWwYBCABKAkSDgoGc3Rkb3V0GAUgASgJEg4KBnN0ZGVychgGIAEoCRIWCg5leGVjdXRpb25fdGltZRgHIAEoBRI2Cg9vdXRwdXRfbG9jYXRpb24YCCABKAsyGC5hZ2VudC52MS5PdXRwdXRMb2NhdGlvbkgAiAEBEhUKCHNoZWxsX2lkGAkgASgNSAGIAQESHwoSaW50ZXJsZWF2ZWRfb3V0cHV0GAogASgJSAKIAQESEAoDcGlkGAsgASgNSAOIAQESFwoKbXNfdG9fd2FpdBgMIAEoBUgEiAEBEiQKF2xvY2FsX2V4ZWN1dGlvbl90aW1lX21zGA0gASgFSAWIAQESPwoRYmFja2dyb3VuZF9yZWFzb24YDiABKA4yHy5hZ2VudC52MS5TaGVsbEJhY2tncm91bmRSZWFzb25IBogBARIYCgtvdXRwdXRfaGVhZBgPIAEoCUgHiAEBEhgKC291dHB1dF90YWlsGBAgASgJSAiIAQESGQoMZWxpZGVkX2NoYXJzGBEgASgNSAmIAQFCEgoQX291dHB1dF9sb2NhdGlvbkILCglfc2hlbGxfaWRCFQoTX2ludGVybGVhdmVkX291dHB1dEIGCgRfcGlkQg0KC19tc190b193YWl0QhoKGF9sb2NhbF9leGVjdXRpb25fdGltZV9tc0IUChJfYmFja2dyb3VuZF9yZWFzb25CDgoMX291dHB1dF9oZWFkQg4KDF9vdXRwdXRfdGFpbEIPCg1fZWxpZGVkX2NoYXJzIpgECgxTaGVsbEZhaWx1cmUSDwoHY29tbWFuZBgBIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgCIAEoCRIRCglleGl0X2NvZGUYAyABKAUSDgoGc2lnbmFsGAQgASgJEg4KBnN0ZG91dBgFIAEoCRIOCgZzdGRlcnIYBiABKAkSFgoOZXhlY3V0aW9uX3RpbWUYByABKAUSNgoPb3V0cHV0X2xvY2F0aW9uGAggASgLMhguYWdlbnQudjEuT3V0cHV0TG9jYXRpb25IAIgBARIfChJpbnRlcmxlYXZlZF9vdXRwdXQYCSABKAlIAYgBARIZCgxhYm9ydF9yZWFzb24YCiABKAVIAogBARIPCgdhYm9ydGVkGAsgASgIEiQKF2xvY2FsX2V4ZWN1dGlvbl90aW1lX21zGAwgASgFSAOIAQESGAoLb3V0cHV0X2hlYWQYDSABKAlIBIgBARIYCgtvdXRwdXRfdGFpbBgOIAEoCUgFiAEBEhkKDGVsaWRlZF9jaGFycxgPIAEoDUgGiAEBQhIKEF9vdXRwdXRfbG9jYXRpb25CFQoTX2ludGVybGVhdmVkX291dHB1dEIPCg1fYWJvcnRfcmVhc29uQhoKGF9sb2NhbF9leGVjdXRpb25fdGltZV9tc0IOCgxfb3V0cHV0X2hlYWRCDgoMX291dHB1dF90YWlsQg8KDV9lbGlkZWRfY2hhcnMiTgoMU2hlbGxUaW1lb3V0Eg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSEgoKdGltZW91dF9tcxgDIAEoBSJgCg1TaGVsbFJlamVjdGVkEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSDgoGcmVhc29uGAMgASgJEhMKC2lzX3JlYWRvbmx5GAQgASgIImcKFVNoZWxsUGVybWlzc2lvbkRlbmllZBIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg0KBWVycm9yGAMgASgJEhMKC2lzX3JlYWRvbmx5GAQgASgIIkwKD1NoZWxsU3Bhd25FcnJvchIPCgdjb21tYW5kGAEgASgJEhkKEXdvcmtpbmdfZGlyZWN0b3J5GAIgASgJEg0KBWVycm9yGAMgASgJIkAKElNoZWxsUGFydGlhbFJlc3VsdBIUCgxzdGRvdXRfZGVsdGEYASABKAkSFAoMc3RkZXJyX2RlbHRhGAIgASgJIlkKDVNoZWxsVG9vbENhbGwSIQoEYXJncxgBIAEoCzITLmFnZW50LnYxLlNoZWxsQXJncxIlCgZyZXN1bHQYAiABKAsyFS5hZ2VudC52MS5TaGVsbFJlc3VsdCIrChhTaGVsbFRvb2xDYWxsU3Rkb3V0RGVsdGESDwoHY29udGVudBgBIAEoCSIrChhTaGVsbFRvb2xDYWxsU3RkZXJyRGVsdGESDwoHY29udGVudBgBIAEoCSKJAQoSU2hlbGxUb29sQ2FsbERlbHRhEjQKBnN0ZG91dBgBIAEoCzIiLmFnZW50LnYxLlNoZWxsVG9vbENhbGxTdGRvdXREZWx0YUgAEjQKBnN0ZGVychgCIAEoCzIiLmFnZW50LnYxLlNoZWxsVG9vbENhbGxTdGRlcnJEZWx0YUgAQgcKBWRlbHRhIu0BCgxTdWJhZ2VudFR5cGUSOAoLdW5zcGVjaWZpZWQYASABKAsyIS5hZ2VudC52MS5TdWJhZ2VudFR5cGVVbnNwZWNpZmllZEgAEjkKDGNvbXB1dGVyX3VzZRgCIAEoCzIhLmFnZW50LnYxLlN1YmFnZW50VHlwZUNvbXB1dGVyVXNlSAASLgoGY3VzdG9tGAMgASgLMhwuYWdlbnQudjEuU3ViYWdlbnRUeXBlQ3VzdG9tSAASMAoHZXhwbG9yZRgEIAEoCzIdLmFnZW50LnYxLlN1YmFnZW50VHlwZUV4cGxvcmVIAEIGCgR0eXBlIhkKF1N1YmFnZW50VHlwZVVuc3BlY2lmaWVkIhkKF1N1YmFnZW50VHlwZUNvbXB1dGVyVXNlIhUKE1N1YmFnZW50VHlwZUV4cGxvcmUiIgoSU3ViYWdlbnRUeXBlQ3VzdG9tEgwKBG5hbWUYASABKAkijQEKDkN1c3RvbVN1YmFnZW50EhEKCWZ1bGxfcGF0aBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJEg0KBXRvb2xzGAQgAygJEg0KBW1vZGVsGAUgASgJEg4KBnByb21wdBgGIAEoCRIXCg9wZXJtaXNzaW9uX21vZGUYByABKAUiaAoOU3dpdGNoTW9kZUFyZ3MSFgoOdGFyZ2V0X21vZGVfaWQYASABKAkSGAoLZXhwbGFuYXRpb24YAiABKAlIAIgBARIUCgx0b29sX2NhbGxfaWQYAyABKAlCDgoMX2V4cGxhbmF0aW9uIqoBChBTd2l0Y2hNb2RlUmVzdWx0Ei4KB3N1Y2Nlc3MYASABKAsyGy5hZ2VudC52MS5Td2l0Y2hNb2RlU3VjY2Vzc0gAEioKBWVycm9yGAIgASgLMhkuYWdlbnQudjEuU3dpdGNoTW9kZUVycm9ySAASMAoIcmVqZWN0ZWQYAyABKAsyHC5hZ2VudC52MS5Td2l0Y2hNb2RlUmVqZWN0ZWRIAEIICgZyZXN1bHQiPQoRU3dpdGNoTW9kZVN1Y2Nlc3MSFAoMZnJvbV9tb2RlX2lkGAEgASgJEhIKCnRvX21vZGVfaWQYAiABKAkiIAoPU3dpdGNoTW9kZUVycm9yEg0KBWVycm9yGAEgASgJIiQKElN3aXRjaE1vZGVSZWplY3RlZBIOCgZyZWFzb24YASABKAkiaAoSU3dpdGNoTW9kZVRvb2xDYWxsEiYKBGFyZ3MYASABKAsyGC5hZ2VudC52MS5Td2l0Y2hNb2RlQXJncxIqCgZyZXN1bHQYAiABKAsyGi5hZ2VudC52MS5Td2l0Y2hNb2RlUmVzdWx0IkAKFlN3aXRjaE1vZGVSZXF1ZXN0UXVlcnkSJgoEYXJncxgBIAEoCzIYLmFnZW50LnYxLlN3aXRjaE1vZGVBcmdzIqkBChlTd2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlEkAKCGFwcHJvdmVkGAEgASgLMiwuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZV9BcHByb3ZlZEgAEkAKCHJlamVjdGVkGAIgASgLMiwuYWdlbnQudjEuU3dpdGNoTW9kZVJlcXVlc3RSZXNwb25zZV9SZWplY3RlZEgAQggKBnJlc3VsdCIkCiJTd2l0Y2hNb2RlUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjQKIlN3aXRjaE1vZGVSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJInUKCFRvZG9JdGVtEgoKAmlkGAEgASgJEg8KB2NvbnRlbnQYAiABKAkSDgoGc3RhdHVzGAMgASgFEhIKCmNyZWF0ZWRfYXQYBCABKAMSEgoKdXBkYXRlZF9hdBgFIAEoAxIUCgxkZXBlbmRlbmNpZXMYBiADKAkiawoTVXBkYXRlVG9kb3NUb29sQ2FsbBInCgRhcmdzGAEgASgLMhkuYWdlbnQudjEuVXBkYXRlVG9kb3NBcmdzEisKBnJlc3VsdBgCIAEoCzIbLmFnZW50LnYxLlVwZGF0ZVRvZG9zUmVzdWx0IkMKD1VwZGF0ZVRvZG9zQXJncxIhCgV0b2RvcxgBIAMoCzISLmFnZW50LnYxLlRvZG9JdGVtEg0KBW1lcmdlGAIgASgIInsKEVVwZGF0ZVRvZG9zUmVzdWx0Ei8KB3N1Y2Nlc3MYASABKAsyHC5hZ2VudC52MS5VcGRhdGVUb2Rvc1N1Y2Nlc3NIABIrCgVlcnJvchgCIAEoCzIaLmFnZW50LnYxLlVwZGF0ZVRvZG9zRXJyb3JIAEIICgZyZXN1bHQiXwoSVXBkYXRlVG9kb3NTdWNjZXNzEiEKBXRvZG9zGAEgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0SEwoLdG90YWxfY291bnQYAiABKAUSEQoJd2FzX21lcmdlGAMgASgIIiEKEFVwZGF0ZVRvZG9zRXJyb3ISDQoFZXJyb3IYASABKAkiZQoRUmVhZFRvZG9zVG9vbENhbGwSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLlJlYWRUb2Rvc0FyZ3MSKQoGcmVzdWx0GAIgASgLMhkuYWdlbnQudjEuUmVhZFRvZG9zUmVzdWx0IjkKDVJlYWRUb2Rvc0FyZ3MSFQoNc3RhdHVzX2ZpbHRlchgBIAMoBRIRCglpZF9maWx0ZXIYAiADKAkidQoPUmVhZFRvZG9zUmVzdWx0Ei0KB3N1Y2Nlc3MYASABKAsyGi5hZ2VudC52MS5SZWFkVG9kb3NTdWNjZXNzSAASKQoFZXJyb3IYAiABKAsyGC5hZ2VudC52MS5SZWFkVG9kb3NFcnJvckgAQggKBnJlc3VsdCJKChBSZWFkVG9kb3NTdWNjZXNzEiEKBXRvZG9zGAEgAygLMhIuYWdlbnQudjEuVG9kb0l0ZW0SEwoLdG90YWxfY291bnQYAiABKAUiHwoOUmVhZFRvZG9zRXJyb3ISDQoFZXJyb3IYASABKAkiSwoFUmFuZ2USIQoFc3RhcnQYASABKAsyEi5hZ2VudC52MS5Qb3NpdGlvbhIfCgNlbmQYAiABKAsyEi5hZ2VudC52MS5Qb3NpdGlvbiIoCghQb3NpdGlvbhIMCgRsaW5lGAEgASgNEg4KBmNvbHVtbhgCIAEoDSIYCgVFcnJvchIPCgdtZXNzYWdlGAEgASgJIjoKDVdlYlNlYXJjaEFyZ3MSEwoLc2VhcmNoX3Rlcm0YASABKAkSFAoMdG9vbF9jYWxsX2lkGAIgASgJIqYBCg9XZWJTZWFyY2hSZXN1bHQSLQoHc3VjY2VzcxgBIAEoCzIaLmFnZW50LnYxLldlYlNlYXJjaFN1Y2Nlc3NIABIpCgVlcnJvchgCIAEoCzIYLmFnZW50LnYxLldlYlNlYXJjaEVycm9ySAASLwoIcmVqZWN0ZWQYAyABKAsyGy5hZ2VudC52MS5XZWJTZWFyY2hSZWplY3RlZEgAQggKBnJlc3VsdCJEChBXZWJTZWFyY2hTdWNjZXNzEjAKCnJlZmVyZW5jZXMYASADKAsyHC5hZ2VudC52MS5XZWJTZWFyY2hSZWZlcmVuY2UiHwoOV2ViU2VhcmNoRXJyb3ISDQoFZXJyb3IYASABKAkiIwoRV2ViU2VhcmNoUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIj8KEldlYlNlYXJjaFJlZmVyZW5jZRINCgV0aXRsZRgBIAEoCRILCgN1cmwYAiABKAkSDQoFY2h1bmsYAyABKAkiZQoRV2ViU2VhcmNoVG9vbENhbGwSJQoEYXJncxgBIAEoCzIXLmFnZW50LnYxLldlYlNlYXJjaEFyZ3MSKQoGcmVzdWx0GAIgASgLMhkuYWdlbnQudjEuV2ViU2VhcmNoUmVzdWx0Ij4KFVdlYlNlYXJjaFJlcXVlc3RRdWVyeRIlCgRhcmdzGAEgASgLMhcuYWdlbnQudjEuV2ViU2VhcmNoQXJncyKmAQoYV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlEj8KCGFwcHJvdmVkGAEgASgLMisuYWdlbnQudjEuV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkSAASPwoIcmVqZWN0ZWQYAiABKAsyKy5hZ2VudC52MS5XZWJTZWFyY2hSZXF1ZXN0UmVzcG9uc2VfUmVqZWN0ZWRIAEIICgZyZXN1bHQiIwohV2ViU2VhcmNoUmVxdWVzdFJlc3BvbnNlX0FwcHJvdmVkIjMKIVdlYlNlYXJjaFJlcXVlc3RSZXNwb25zZV9SZWplY3RlZBIOCgZyZWFzb24YASABKAkirQEKCVdyaXRlQXJncxIMCgRwYXRoGAEgASgJEhEKCWZpbGVfdGV4dBgCIAEoCRIUCgx0b29sX2NhbGxfaWQYAyABKAkSJwofcmV0dXJuX2ZpbGVfY29udGVudF9hZnRlcl93cml0ZRgEIAEoCBISCgpmaWxlX2J5dGVzGAUgASgMEhoKDWVuY29kaW5nX2hpbnQYBiABKAlIAIgBAUIQCg5fZW5jb2RpbmdfaGludCKAAgoLV3JpdGVSZXN1bHQSKQoHc3VjY2VzcxgBIAEoCzIWLmFnZW50LnYxLldyaXRlU3VjY2Vzc0gAEjwKEXBlcm1pc3Npb25fZGVuaWVkGAMgASgLMh8uYWdlbnQudjEuV3JpdGVQZXJtaXNzaW9uRGVuaWVkSAASKgoIbm9fc3BhY2UYBCABKAsyFi5hZ2VudC52MS5Xcml0ZU5vU3BhY2VIABIlCgVlcnJvchgFIAEoCzIULmFnZW50LnYxLldyaXRlRXJyb3JIABIrCghyZWplY3RlZBgGIAEoCzIXLmFnZW50LnYxLldyaXRlUmVqZWN0ZWRIAEIICgZyZXN1bHQiigEKDFdyaXRlU3VjY2VzcxIMCgRwYXRoGAEgASgJEhUKDWxpbmVzX2NyZWF0ZWQYAiABKAUSEQoJZmlsZV9zaXplGAMgASgFEiUKGGZpbGVfY29udGVudF9hZnRlcl93cml0ZRgEIAEoCUgAiAEBQhsKGV9maWxlX2NvbnRlbnRfYWZ0ZXJfd3JpdGUibwoVV3JpdGVQZXJtaXNzaW9uRGVuaWVkEgwKBHBhdGgYASABKAkSEQoJZGlyZWN0b3J5GAIgASgJEhEKCW9wZXJhdGlvbhgDIAEoCRINCgVlcnJvchgEIAEoCRITCgtpc19yZWFkb25seRgFIAEoCCIcCgxXcml0ZU5vU3BhY2USDAoEcGF0aBgBIAEoCSIpCgpXcml0ZUVycm9yEgwKBHBhdGgYASABKAkSDQoFZXJyb3IYAiABKAkiLQoNV3JpdGVSZWplY3RlZBIMCgRwYXRoGAEgASgJEg4KBnJlYXNvbhgCIAEoCSKDAQoXQm9vdHN0cmFwU3RhdHNpZ1JlcXVlc3QSHgoRaWdub3JlX2Rldl9zdGF0dXMYASABKAhIAIgBARIdChBvcGVyYXRpbmdfc3lzdGVtGAIgASgFSAGIAQFCFAoSX2lnbm9yZV9kZXZfc3RhdHVzQhMKEV9vcGVyYXRpbmdfc3lzdGVtIg4KDFBpbmdSZXNwb25zZSK3AQoLRXhlY1JlcXVlc3QSDwoHY29tbWFuZBgBIAEoCRIQCgNjd2QYAiABKAlIAIgBARIMCgRhcmdzGAMgAygJEjsKC2Vudmlyb25tZW50GAQgAygLMiYuYWdlbnQudjEuRXhlY1JlcXVlc3QuRW52aXJvbm1lbnRFbnRyeRoyChBFbnZpcm9ubWVudEVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCBgoEX2N3ZCKgAQoMRXhlY1Jlc3BvbnNlEi0KDHN0ZG91dF9ldmVudBgBIAEoCzIVLmFnZW50LnYxLlN0ZG91dEV2ZW50SAASLQoMc3RkZXJyX2V2ZW50GAIgASgLMhUuYWdlbnQudjEuU3RkZXJyRXZlbnRIABIpCgpleGl0X2V2ZW50GAMgASgLMhMuYWdlbnQudjEuRXhpdEV2ZW50SABCBwoFZXZlbnQiGwoLU3Rkb3V0RXZlbnQSDAoEZGF0YRgBIAEoCSIbCgtTdGRlcnJFdmVudBIMCgRkYXRhGAEgASgJIh4KCUV4aXRFdmVudBIRCglleGl0X2NvZGUYASABKAUiIwoTUmVhZFRleHRGaWxlUmVxdWVzdBIMCgRwYXRoGAEgASgJIicKFFJlYWRUZXh0RmlsZVJlc3BvbnNlEg8KB2NvbnRlbnQYASABKAkiNQoUV3JpdGVUZXh0RmlsZVJlcXVlc3QSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJIhcKFVdyaXRlVGV4dEZpbGVSZXNwb25zZSIlChVSZWFkQmluYXJ5RmlsZVJlcXVlc3QSDAoEcGF0aBgBIAEoCSIpChZSZWFkQmluYXJ5RmlsZVJlc3BvbnNlEg8KB2NvbnRlbnQYASABKAwiNwoWV3JpdGVCaW5hcnlGaWxlUmVxdWVzdBIMCgRwYXRoGAEgASgJEg8KB2NvbnRlbnQYAiABKAwiGQoXV3JpdGVCaW5hcnlGaWxlUmVzcG9uc2UiRQoeR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXF1ZXN0EhEKCXJvb3RfcGF0aBgBIAEoCRIQCghiYXNlX3JlZhgCIAEoCSIvCh9HZXRXb3Jrc3BhY2VDaGFuZ2VzSGFzaFJlc3BvbnNlEgwKBGhhc2gYASABKAkiUAofUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuUmVxdWVzdBIbChNnaXRodWJfYWNjZXNzX3Rva2VuGAEgASgJEhAKCGhvc3RuYW1lGAIgASgJIiIKIFJlZnJlc2hHaXRodWJBY2Nlc3NUb2tlblJlc3BvbnNlIlcKHVdhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXJSZXF1ZXN0Eg4KBmNvbW1pdBgBIAEoCRIMCgRwb3J0GAIgASgFEhgKEGNvbm5lY3Rpb25fdG9rZW4YAyABKAkiIAoeV2FybVJlbW90ZUFjY2Vzc1NlcnZlclJlc3BvbnNlIhYKFExpc3RBcnRpZmFjdHNSZXF1ZXN0IooCChZBcnRpZmFjdFVwbG9hZE1ldGFkYXRhEhUKDWFic29sdXRlX3BhdGgYASABKAkSEgoKc2l6ZV9ieXRlcxgCIAEoBBIaChJ1cGRhdGVkX2F0X3VuaXhfbXMYAyABKAMSDgoGc3RhdHVzGAQgASgFEhYKDmJ5dGVzX3VwbG9hZGVkGAUgASgEEhIKCmxhc3RfZXJyb3IYBiABKAkSFwoPdXBsb2FkX2F0dGVtcHRzGAcgASgNEh8KF2xhc3Rfc3RhcnRlZF9hdF91bml4X21zGAggASgDEiAKGGxhc3RfZmluaXNoZWRfYXRfdW5peF9tcxgJIAEoAxIRCgl1cGxvYWRfaWQYCiABKAkiTAoVTGlzdEFydGlmYWN0c1Jlc3BvbnNlEjMKCWFydGlmYWN0cxgBIAMoCzIgLmFnZW50LnYxLkFydGlmYWN0VXBsb2FkTWV0YWRhdGEiTgoWVXBsb2FkQXJ0aWZhY3RzUmVxdWVzdBI0Cgd1cGxvYWRzGAEgAygLMiMuYWdlbnQudjEuQXJ0aWZhY3RVcGxvYWRJbnN0cnVjdGlvbiLXAgoZQXJ0aWZhY3RVcGxvYWRJbnN0cnVjdGlvbhIVCg1hYnNvbHV0ZV9wYXRoGAEgASgJEhIKCnVwbG9hZF91cmwYAiABKAkSDgoGbWV0aG9kGAMgASgJEkEKB2hlYWRlcnMYBCADKAsyMC5hZ2VudC52MS5BcnRpZmFjdFVwbG9hZEluc3RydWN0aW9uLkhlYWRlcnNFbnRyeRIZCgxjb250ZW50X3R5cGUYBSABKAlIAIgBARIdChBzbGFja191cGxvYWRfdXJsGAYgASgJSAGIAQESGgoNc2xhY2tfZmlsZV9pZBgHIAEoCUgCiAEBGi4KDEhlYWRlcnNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg8KDV9jb250ZW50X3R5cGVCEwoRX3NsYWNrX3VwbG9hZF91cmxCEAoOX3NsYWNrX2ZpbGVfaWQihAEKHEFydGlmYWN0VXBsb2FkRGlzcGF0Y2hSZXN1bHQSFQoNYWJzb2x1dGVfcGF0aBgBIAEoCRIOCgZzdGF0dXMYAiABKAUSDwoHbWVzc2FnZRgDIAEoCRIaCg1zbGFja19maWxlX2lkGAQgASgJSACIAQFCEAoOX3NsYWNrX2ZpbGVfaWQiUgoXVXBsb2FkQXJ0aWZhY3RzUmVzcG9uc2USNwoHcmVzdWx0cxgBIAMoCzImLmFnZW50LnYxLkFydGlmYWN0VXBsb2FkRGlzcGF0Y2hSZXN1bHQiHAoaR2V0TWNwUmVmcmVzaFRva2Vuc1JlcXVlc3QipQEKG0dldE1jcFJlZnJlc2hUb2tlbnNSZXNwb25zZRJQCg5yZWZyZXNoX3Rva2VucxgBIAMoCzI4LmFnZW50LnYxLkdldE1jcFJlZnJlc2hUb2tlbnNSZXNwb25zZS5SZWZyZXNoVG9rZW5zRW50cnkaNAoSUmVmcmVzaFRva2Vuc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiowEKIVVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVxdWVzdBJBCgNlbnYYASADKAsyNC5hZ2VudC52MS5VcGRhdGVFbnZpcm9ubWVudFZhcmlhYmxlc1JlcXVlc3QuRW52RW50cnkSDwoHcmVwbGFjZRgCIAEoCBoqCghFbnZFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBIkYKIlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzUmVzcG9uc2USDwoHYXBwbGllZBgBIAEoDRIPCgdyZW1vdmVkGAIgASgNIoMBChJNY3BPQXV0aFN0b3JlZERhdGESFQoNcmVmcmVzaF90b2tlbhgBIAEoCRIRCgljbGllbnRfaWQYAiABKAkSGgoNY2xpZW50X3NlY3JldBgDIAEoCUgAiAEBEhUKDXJlZGlyZWN0X3VyaXMYBCADKAlCEAoOX2NsaWVudF9zZWNyZXQiTgoFRnJhbWUSCgoCaWQYASABKAkSDgoGbWV0aG9kGAIgASgJEgwKBGRhdGEYAyABKAwSDAoEa2luZBgEIAEoBRINCgVlcnJvchgFIAEoCSIHCgVFbXB0eSIjCg1CaWRpUmVxdWVzdElkEhIKCnJlcXVlc3RfaWQYASABKAkigQIKDFBpVHJ1bmNhdGlvbhIRCgl0cnVuY2F0ZWQYASABKAgSFAoMdHJ1bmNhdGVkX2J5GAIgASgJEhMKC3RvdGFsX2xpbmVzGAMgASgNEhQKDG91dHB1dF9saW5lcxgEIAEoDRIUCgxvdXRwdXRfYnl0ZXMYBSABKA0SFgoJbWF4X2xpbmVzGAYgASgNSACIAQESFgoJbWF4X2J5dGVzGAcgASgNSAGIAQESIAoYZmlyc3RfbGluZV9leGNlZWRzX2xpbWl0GAggASgIEhkKEWxhc3RfbGluZV9wYXJ0aWFsGAkgASgIQgwKCl9tYXhfbGluZXNCDAoKX21heF9ieXRlcyI3ChFQaUVkaXRSZXBsYWNlbWVudBIQCghvbGRfdGV4dBgBIAEoCRIQCghuZXdfdGV4dBgCIAEoCSJcCg5QaVJlYWRFeGVjQXJncxIMCgRwYXRoGAEgASgJEhMKBm9mZnNldBgCIAEoBUgAiAEBEhIKBWxpbWl0GAMgASgFSAGIAQFCCQoHX29mZnNldEIICgZfbGltaXQiYwoRUGlSZWFkRXhlY1N1Y2Nlc3MSDgoGb3V0cHV0GAEgASgJEi8KCnRydW5jYXRpb24YAiABKAsyFi5hZ2VudC52MS5QaVRydW5jYXRpb25IAIgBAUINCgtfdHJ1bmNhdGlvbiIgCg9QaVJlYWRFeGVjRXJyb3ISDQoFZXJyb3IYASABKAkieAoQUGlSZWFkRXhlY1Jlc3VsdBIuCgdzdWNjZXNzGAEgASgLMhsuYWdlbnQudjEuUGlSZWFkRXhlY1N1Y2Nlc3NIABIqCgVlcnJvchgCIAEoCzIZLmFnZW50LnYxLlBpUmVhZEV4ZWNFcnJvckgAQggKBnJlc3VsdCJDCg5QaUJhc2hFeGVjQXJncxIPCgdjb21tYW5kGAEgASgJEhQKB3RpbWVvdXQYAiABKAFIAIgBAUIKCghfdGltZW91dCKXAQoRUGlCYXNoRXhlY1N1Y2Nlc3MSDgoGb3V0cHV0GAEgASgJEi8KCnRydW5jYXRpb24YAiABKAsyFi5hZ2VudC52MS5QaVRydW5jYXRpb25IAIgBARIdChBmdWxsX291dHB1dF9wYXRoGAMgASgJSAGIAQFCDQoLX3RydW5jYXRpb25CEwoRX2Z1bGxfb3V0cHV0X3BhdGgilAEKD1BpQmFzaEV4ZWNFcnJvchINCgVlcnJvchgBIAEoCRIvCgp0cnVuY2F0aW9uGAIgASgLMhYuYWdlbnQudjEuUGlUcnVuY2F0aW9uSACIAQESHQoQZnVsbF9vdXRwdXRfcGF0aBgDIAEoCUgBiAEBQg0KC190cnVuY2F0aW9uQhMKEV9mdWxsX291dHB1dF9wYXRoIngKEFBpQmFzaEV4ZWNSZXN1bHQSLgoHc3VjY2VzcxgBIAEoCzIbLmFnZW50LnYxLlBpQmFzaEV4ZWNTdWNjZXNzSAASKgoFZXJyb3IYAiABKAsyGS5hZ2VudC52MS5QaUJhc2hFeGVjRXJyb3JIAEIICgZyZXN1bHQiSgoOUGlFZGl0RXhlY0FyZ3MSDAoEcGF0aBgBIAEoCRIqCgVlZGl0cxgCIAMoCzIbLmFnZW50LnYxLlBpRWRpdFJlcGxhY2VtZW50IngKEVBpRWRpdEV4ZWNTdWNjZXNzEg4KBm91dHB1dBgBIAEoCRIMCgRkaWZmGAIgASgJEg0KBXBhdGNoGAMgASgJEh8KEmZpcnN0X2NoYW5nZWRfbGluZRgEIAEoDUgAiAEBQhUKE19maXJzdF9jaGFuZ2VkX2xpbmUiIAoPUGlFZGl0RXhlY0Vycm9yEg0KBWVycm9yGAEgASgJIiQKElBpRWRpdEV4ZWNSZWplY3RlZBIOCgZyZWFzb24YASABKAkiqgEKEFBpRWRpdEV4ZWNSZXN1bHQSLgoHc3VjY2VzcxgBIAEoCzIbLmFnZW50LnYxLlBpRWRpdEV4ZWNTdWNjZXNzSAASKgoFZXJyb3IYAiABKAsyGS5hZ2VudC52MS5QaUVkaXRFeGVjRXJyb3JIABIwCghyZWplY3RlZBgDIAEoCzIcLmFnZW50LnYxLlBpRWRpdEV4ZWNSZWplY3RlZEgAQggKBnJlc3VsdCIwCg9QaVdyaXRlRXhlY0FyZ3MSDAoEcGF0aBgBIAEoCRIPCgdjb250ZW50GAIgASgJIiQKElBpV3JpdGVFeGVjU3VjY2VzcxIOCgZvdXRwdXQYASABKAkiIQoQUGlXcml0ZUV4ZWNFcnJvchINCgVlcnJvchgBIAEoCSIlChNQaVdyaXRlRXhlY1JlamVjdGVkEg4KBnJlYXNvbhgBIAEoCSKuAQoRUGlXcml0ZUV4ZWNSZXN1bHQSLwoHc3VjY2VzcxgBIAEoCzIcLmFnZW50LnYxLlBpV3JpdGVFeGVjU3VjY2Vzc0gAEisKBWVycm9yGAIgASgLMhouYWdlbnQudjEuUGlXcml0ZUV4ZWNFcnJvckgAEjEKCHJlamVjdGVkGAMgASgLMh0uYWdlbnQudjEuUGlXcml0ZUV4ZWNSZWplY3RlZEgAQggKBnJlc3VsdCLlAQoOUGlHcmVwRXhlY0FyZ3MSDwoHcGF0dGVybhgBIAEoCRIRCgRwYXRoGAIgASgJSACIAQESEQoEZ2xvYhgDIAEoCUgBiAEBEhgKC2lnbm9yZV9jYXNlGAQgASgISAKIAQESFAoHbGl0ZXJhbBgFIAEoCEgDiAEBEhQKB2NvbnRleHQYBiABKAVIBIgBARISCgVsaW1pdBgHIAEoBUgFiAEBQgcKBV9wYXRoQgcKBV9nbG9iQg4KDF9pZ25vcmVfY2FzZUIKCghfbGl0ZXJhbEIKCghfY29udGV4dEIICgZfbGltaXQitgEKEVBpR3JlcEV4ZWNTdWNjZXNzEg4KBm91dHB1dBgBIAEoCRIvCgp0cnVuY2F0aW9uGAIgASgLMhYuYWdlbnQudjEuUGlUcnVuY2F0aW9uSACIAQESIAoTbWF0Y2hfbGltaXRfcmVhY2hlZBgDIAEoDUgBiAEBEhcKD2xpbmVzX3RydW5jYXRlZBgEIAEoCEINCgtfdHJ1bmNhdGlvbkIWChRfbWF0Y2hfbGltaXRfcmVhY2hlZCIgCg9QaUdyZXBFeGVjRXJyb3ISDQoFZXJyb3IYASABKAkieAoQUGlHcmVwRXhlY1Jlc3VsdBIuCgdzdWNjZXNzGAEgASgLMhsuYWdlbnQudjEuUGlHcmVwRXhlY1N1Y2Nlc3NIABIqCgVlcnJvchgCIAEoCzIZLmFnZW50LnYxLlBpR3JlcEV4ZWNFcnJvckgAQggKBnJlc3VsdCJbCg5QaUZpbmRFeGVjQXJncxIPCgdwYXR0ZXJuGAEgASgJEhEKBHBhdGgYAiABKAlIAIgBARISCgVsaW1pdBgDIAEoBUgBiAEBQgcKBV9wYXRoQggKBl9saW1pdCKfAQoRUGlGaW5kRXhlY1N1Y2Nlc3MSDgoGb3V0cHV0GAEgASgJEi8KCnRydW5jYXRpb24YAiABKAsyFi5hZ2VudC52MS5QaVRydW5jYXRpb25IAIgBARIhChRyZXN1bHRfbGltaXRfcmVhY2hlZBgDIAEoDUgBiAEBQg0KC190cnVuY2F0aW9uQhcKFV9yZXN1bHRfbGltaXRfcmVhY2hlZCIgCg9QaUZpbmRFeGVjRXJyb3ISDQoFZXJyb3IYASABKAkieAoQUGlGaW5kRXhlY1Jlc3VsdBIuCgdzdWNjZXNzGAEgASgLMhsuYWdlbnQudjEuUGlGaW5kRXhlY1N1Y2Nlc3NIABIqCgVlcnJvchgCIAEoCzIZLmFnZW50LnYxLlBpRmluZEV4ZWNFcnJvckgAQggKBnJlc3VsdCJICgxQaUxzRXhlY0FyZ3MSEQoEcGF0aBgBIAEoCUgAiAEBEhIKBWxpbWl0GAIgASgFSAGIAQFCBwoFX3BhdGhCCAoGX2xpbWl0IpsBCg9QaUxzRXhlY1N1Y2Nlc3MSDgoGb3V0cHV0GAEgASgJEi8KCnRydW5jYXRpb24YAiABKAsyFi5hZ2VudC52MS5QaVRydW5jYXRpb25IAIgBARIgChNlbnRyeV9saW1pdF9yZWFjaGVkGAMgASgNSAGIAQFCDQoLX3RydW5jYXRpb25CFgoUX2VudHJ5X2xpbWl0X3JlYWNoZWQiHgoNUGlMc0V4ZWNFcnJvchINCgVlcnJvchgBIAEoCSJyCg5QaUxzRXhlY1Jlc3VsdBIsCgdzdWNjZXNzGAEgASgLMhkuYWdlbnQudjEuUGlMc0V4ZWNTdWNjZXNzSAASKAoFZXJyb3IYAiABKAsyFy5hZ2VudC52MS5QaUxzRXhlY0Vycm9ySABCCAoGcmVzdWx0IjwKEU1jcFNlcnZlck5vdEZvdW5kEgwKBG5hbWUYASABKAkSGQoRYXZhaWxhYmxlX3NlcnZlcnMYAiADKAkiDQoLTWNwQXBwcm92ZWQiQQoQTWNwU3RhdGVFeGVjQXJncxIaChJzZXJ2ZXJfaWRlbnRpZmllcnMYASADKAkSEQoJa2lja19vbmx5GAIgASgIIocCCg5NY3BTdGF0ZVNlcnZlchITCgtzZXJ2ZXJfbmFtZRgBIAEoCRIZChFzZXJ2ZXJfaWRlbnRpZmllchgCIAEoCRITCgZwbHVnaW4YAyABKAlIAIgBARIYCgttYXJrZXRwbGFjZRgEIAEoCUgBiAEBEioKBXRvb2xzGAUgAygLMhsuYWdlbnQudjEuTWNwVG9vbERlZmluaXRpb24SLwoMaW5zdHJ1Y3Rpb25zGAYgAygLMhkuYWdlbnQudjEuTWNwSW5zdHJ1Y3Rpb25zEhMKBnN0YXR1cxgHIAEoCUgCiAEBQgkKB19wbHVnaW5CDgoMX21hcmtldHBsYWNlQgkKB19zdGF0dXMiPAoPTWNwU3RhdGVTdWNjZXNzEikKB3NlcnZlcnMYASADKAsyGC5hZ2VudC52MS5NY3BTdGF0ZVNlcnZlciIeCg1NY3BTdGF0ZUVycm9yEg0KBWVycm9yGAEgASgJIiIKEE1jcFN0YXRlUmVqZWN0ZWQSDgoGcmVhc29uGAEgASgJIqYBChJNY3BTdGF0ZUV4ZWNSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLk1jcFN0YXRlU3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuTWNwU3RhdGVFcnJvckgAEi4KCHJlamVjdGVkGAMgASgLMhouYWdlbnQudjEuTWNwU3RhdGVSZWplY3RlZEgAQggKBnJlc3VsdCKtAQopQ29tbWFuZENsYXNzaWZpZXJSZXN1bHRfQ2xhc3NpZmllZENvbW1hbmQSDAoEbmFtZRgBIAEoCRIRCglhcmd1bWVudHMYAiADKAkSJgoZc3VnZ2VzdGVkX2FsbG93bGlzdF9lbnRyeRgDIAEoCUgAiAEBEhkKEXN1YmNvbW1hbmRfdG9rZW5zGAQgAygJQhwKGl9zdWdnZXN0ZWRfYWxsb3dsaXN0X2VudHJ5ItcBChdDb21tYW5kQ2xhc3NpZmllclJlc3VsdBJFCghjb21tYW5kcxgBIAMoCzIzLmFnZW50LnYxLkNvbW1hbmRDbGFzc2lmaWVyUmVzdWx0X0NsYXNzaWZpZWRDb21tYW5kElYKFnN1Z2dlc3RlZF9zYW5kYm94X21vZGUYAiABKA4yNi5hZ2VudC52MS5Db21tYW5kQ2xhc3NpZmllclJlc3VsdF9TdWdnZXN0ZWRTYW5kYm94TW9kZRIdChVjbGFzc2lmaWNhdGlvbl9mYWlsZWQYAyABKAgikwEKIlNoZWxsQ29tbWFuZFBhcnNpbmdSZXN1bHRfUmVkaXJlY3QSEAoIb3BlcmF0b3IYASABKAkSFwoPZGVzdGluYXRpb25fZmRzGAIgAygNEhgKEHRhcmdldF9ub2RlX3R5cGUYAyABKAkSGAoLdGFyZ2V0X3RleHQYBCABKAlIAIgBAUIOCgxfdGFyZ2V0X3RleHQiigIKGlNoZWxsQWxsb3dsaXN0UHJlY2hlY2tBcmdzEg8KB2NvbW1hbmQYASABKAkSGQoRd29ya2luZ19kaXJlY3RvcnkYAiABKAkSOwoOcGFyc2luZ19yZXN1bHQYAyABKAsyIy5hZ2VudC52MS5TaGVsbENvbW1hbmRQYXJzaW5nUmVzdWx0EkEKEWNsYXNzaWZpZXJfcmVzdWx0GAQgASgLMiEuYWdlbnQudjEuQ29tbWFuZENsYXNzaWZpZXJSZXN1bHRIAIgBARIZCgx0b29sX2NhbGxfaWQYBSABKAlIAYgBAUIUChJfY2xhc3NpZmllcl9yZXN1bHRCDwoNX3Rvb2xfY2FsbF9pZCIzChxTaGVsbEFsbG93bGlzdFByZWNoZWNrUmVzdWx0EhMKC2FsbG93bGlzdGVkGAEgASgIInYKGE1jcEFsbG93bGlzdFByZWNoZWNrQXJncxIbChNwcm92aWRlcl9pZGVudGlmaWVyGAEgASgJEhEKCXRvb2xfbmFtZRgCIAEoCRIZCgx0b29sX2NhbGxfaWQYAyABKAlIAIgBAUIPCg1fdG9vbF9jYWxsX2lkIjEKGk1jcEFsbG93bGlzdFByZWNoZWNrUmVzdWx0EhMKC2FsbG93bGlzdGVkGAEgASgIIlgKHVdlYkZldGNoQWxsb3dsaXN0UHJlY2hlY2tBcmdzEgsKA3VybBgBIAEoCRIZCgx0b29sX2NhbGxfaWQYAiABKAlIAIgBAUIPCg1fdG9vbF9jYWxsX2lkIjYKH1dlYkZldGNoQWxsb3dsaXN0UHJlY2hlY2tSZXN1bHQSEwoLYWxsb3dsaXN0ZWQYASABKAgiNwoRU21hcnRNb2RlQXBwcm92YWwSEgoKcmVxdWVzdF9pZBgBIAEoCRIOCgZyZWFzb24YAiABKAkinAEKHVNoZWxsT3V0cHV0Tm90aWZpY2F0aW9uQ29uZmlnEg8KB3BhdHRlcm4YASABKAkSDgoGcmVhc29uGAIgASgJEhUKCGRlYm91bmNlGAMgASgBSACIAQESHwoSbm90aWZpY2F0aW9uX2xpbWl0GAQgASgFSAGIAQFCCwoJX2RlYm91bmNlQhUKE19ub3RpZmljYXRpb25fbGltaXQieQocU2hlbGxIb29rQXBwcm92YWxSZXF1aXJlbWVudBI5CgRraW5kGAEgASgOMisuYWdlbnQudjEuU2hlbGxIb29rQXBwcm92YWxSZXF1aXJlbWVudF9LaW5kEhMKBnJlYXNvbhgCIAEoCUgAiAEBQgkKB19yZWFzb24iMAoYRm9yY2VCYWNrZ3JvdW5kU2hlbGxBcmdzEhQKDHRvb2xfY2FsbF9pZBgBIAEoCSKVAQoaRm9yY2VCYWNrZ3JvdW5kU2hlbGxSZXN1bHQSNAoGc3RhdHVzGAEgASgOMiQuYWdlbnQudjEuRm9yY2VCYWNrZ3JvdW5kU2hlbGxTdGF0dXMSMAoMc2hlbGxfcmVzdWx0GAIgASgLMhUuYWdlbnQudjEuU2hlbGxSZXN1bHRIAIgBAUIPCg1fc2hlbGxfcmVzdWx0IkEKFUhvb2tBZGRpdGlvbmFsQ29udGV4dBIXCg9ob29rX2V2ZW50X25hbWUYASABKAkSDwoHY29udGVudBgCIAEoCSJbChZTaGVsbFN0cmVhbUhvb2tDb250ZXh0EkEKGGhvb2tfYWRkaXRpb25hbF9jb250ZXh0cxgBIAMoCzIfLmFnZW50LnYxLkhvb2tBZGRpdGlvbmFsQ29udGV4dCJLCgxTdWJhZ2VudEFyZ3MSFAoMdG9vbF9jYWxsX2lkGAEgASgJEhUKDXN1YmFnZW50X3R5cGUYAiABKAkSDgoGcHJvbXB0GAQgASgJItsBCg9TdWJhZ2VudFN1Y2Nlc3MSEAoIYWdlbnRfaWQYASABKAkSGgoNZmluYWxfbWVzc2FnZRgCIAEoCUgAiAEBEhcKD3Rvb2xfY2FsbF9jb3VudBgDIAEoBRI9ChFiYWNrZ3JvdW5kX3JlYXNvbhgEIAEoDjIiLmFnZW50LnYxLlN1YmFnZW50QmFja2dyb3VuZFJlYXNvbhIcCg90cmFuc2NyaXB0X3BhdGgYBSABKAlIAYgBAUIQCg5fZmluYWxfbWVzc2FnZUISChBfdHJhbnNjcmlwdF9wYXRoIkIKDVN1YmFnZW50RXJyb3ISFQoIYWdlbnRfaWQYASABKAlIAIgBARINCgVlcnJvchgCIAEoCUILCglfYWdlbnRfaWQicgoOU3ViYWdlbnRSZXN1bHQSLAoHc3VjY2VzcxgBIAEoCzIZLmFnZW50LnYxLlN1YmFnZW50U3VjY2Vzc0gAEigKBWVycm9yGAIgASgLMhcuYWdlbnQudjEuU3ViYWdlbnRFcnJvckgAQggKBnJlc3VsdCI5ChFTdWJhZ2VudEF3YWl0QXJncxIQCghhZ2VudF9pZBgBIAEoCRISCgp0aW1lb3V0X21zGAIgASgNIqIBChVTdWJhZ2VudEF3YWl0Q29tcGxldGUSEAoIYWdlbnRfaWQYASABKAkSHAoPdHJhbnNjcmlwdF9wYXRoGAIgASgJSACIAQESFwoPdG9vbF9jYWxsX2NvdW50GAMgASgFEhoKDWZpbmFsX21lc3NhZ2UYBCABKAlIAYgBAUISChBfdHJhbnNjcmlwdF9wYXRoQhAKDl9maW5hbF9tZXNzYWdlIl8KGVN1YmFnZW50QXdhaXRTdGlsbFJ1bm5pbmcSEAoIYWdlbnRfaWQYASABKAkSHAoPdHJhbnNjcmlwdF9wYXRoGAIgASgJSACIAQFCEgoQX3RyYW5zY3JpcHRfcGF0aCIpChVTdWJhZ2VudEF3YWl0Tm90Rm91bmQSEAoIYWdlbnRfaWQYASABKAkiRwoSU3ViYWdlbnRBd2FpdEVycm9yEhUKCGFnZW50X2lkGAEgASgJSACIAQESDQoFZXJyb3IYAiABKAlCCwoJX2FnZW50X2lkIvcBChNTdWJhZ2VudEF3YWl0UmVzdWx0EjMKCGNvbXBsZXRlGAEgASgLMh8uYWdlbnQudjEuU3ViYWdlbnRBd2FpdENvbXBsZXRlSAASPAoNc3RpbGxfcnVubmluZxgCIAEoCzIjLmFnZW50LnYxLlN1YmFnZW50QXdhaXRTdGlsbFJ1bm5pbmdIABI0Cglub3RfZm91bmQYAyABKAsyHy5hZ2VudC52MS5TdWJhZ2VudEF3YWl0Tm90Rm91bmRIABItCgVlcnJvchgEIAEoCzIcLmFnZW50LnYxLlN1YmFnZW50QXdhaXRFcnJvckgAQggKBnJlc3VsdCIzChtGb3JjZUJhY2tncm91bmRTdWJhZ2VudEFyZ3MSFAoMdG9vbF9jYWxsX2lkGAEgASgJIlgKHUZvcmNlQmFja2dyb3VuZFN1YmFnZW50UmVzdWx0EjcKBnN0YXR1cxgBIAEoDjInLmFnZW50LnYxLkZvcmNlQmFja2dyb3VuZFN1YmFnZW50U3RhdHVzIhgKFlByZUNvbXBhY3RSZXF1ZXN0UXVlcnkiGwoZU3ViYWdlbnRTdGFydFJlcXVlc3RRdWVyeSIaChhTdWJhZ2VudFN0b3BSZXF1ZXN0UXVlcnkiGAoWUHJlVG9vbFVzZVJlcXVlc3RRdWVyeSIZChdQb3N0VG9vbFVzZVJlcXVlc3RRdWVyeSIgCh5Qb3N0VG9vbFVzZUZhaWx1cmVSZXF1ZXN0UXVlcnkiIAoeQmVmb3JlU3VibWl0UHJvbXB0UmVxdWVzdFF1ZXJ5IiAKHkFmdGVyQWdlbnRSZXNwb25zZVJlcXVlc3RRdWVyeSIfCh1BZnRlckFnZW50VGhvdWdodFJlcXVlc3RRdWVyeSISChBTdG9wUmVxdWVzdFF1ZXJ5IkcKGVByZUNvbXBhY3RSZXF1ZXN0UmVzcG9uc2USGQoMdXNlcl9tZXNzYWdlGAEgASgJSACIAQFCDwoNX3VzZXJfbWVzc2FnZSKqAQocU3ViYWdlbnRTdGFydFJlcXVlc3RSZXNwb25zZRIXCgpwZXJtaXNzaW9uGAEgASgJSACIAQESGQoMdXNlcl9tZXNzYWdlGAIgASgJSAGIAQESHwoSYWRkaXRpb25hbF9jb250ZXh0GAMgASgJSAKIAQFCDQoLX3Blcm1pc3Npb25CDwoNX3VzZXJfbWVzc2FnZUIVChNfYWRkaXRpb25hbF9jb250ZXh0IokBChtTdWJhZ2VudFN0b3BSZXF1ZXN0UmVzcG9uc2USHQoQZm9sbG93dXBfbWVzc2FnZRgBIAEoCUgAiAEBEh8KEmFkZGl0aW9uYWxfY29udGV4dBgCIAEoCUgBiAEBQhMKEV9mb2xsb3d1cF9tZXNzYWdlQhUKE19hZGRpdGlvbmFsX2NvbnRleHQigwIKGVByZVRvb2xVc2VSZXF1ZXN0UmVzcG9uc2USFwoKcGVybWlzc2lvbhgBIAEoCUgAiAEBEhkKDHVzZXJfbWVzc2FnZRgCIAEoCUgBiAEBEhoKDWFnZW50X21lc3NhZ2UYAyABKAlIAogBARIaCg11cGRhdGVkX2lucHV0GAQgASgJSAOIAQESHwoSYWRkaXRpb25hbF9jb250ZXh0GAUgASgJSASIAQFCDQoLX3Blcm1pc3Npb25CDwoNX3VzZXJfbWVzc2FnZUIQCg5fYWdlbnRfbWVzc2FnZUIQCg5fdXBkYXRlZF9pbnB1dEIVChNfYWRkaXRpb25hbF9jb250ZXh0IlQKGlBvc3RUb29sVXNlUmVxdWVzdFJlc3BvbnNlEh8KEmFkZGl0aW9uYWxfY29udGV4dBgBIAEoCUgAiAEBQhUKE19hZGRpdGlvbmFsX2NvbnRleHQiWwohUG9zdFRvb2xVc2VGYWlsdXJlUmVxdWVzdFJlc3BvbnNlEh8KEmFkZGl0aW9uYWxfY29udGV4dBgBIAEoCUgAiAEBQhUKE19hZGRpdGlvbmFsX2NvbnRleHQiqwEKIUJlZm9yZVN1Ym1pdFByb21wdFJlcXVlc3RSZXNwb25zZRIVCghjb250aW51ZRgBIAEoCEgAiAEBEhkKDHVzZXJfbWVzc2FnZRgCIAEoCUgBiAEBEh8KEmFkZGl0aW9uYWxfY29udGV4dBgDIAEoCUgCiAEBQgsKCV9jb250aW51ZUIPCg1fdXNlcl9tZXNzYWdlQhUKE19hZGRpdGlvbmFsX2NvbnRleHQiIwohQWZ0ZXJBZ2VudFJlc3BvbnNlUmVxdWVzdFJlc3BvbnNlIiIKIEFmdGVyQWdlbnRUaG91Z2h0UmVxdWVzdFJlc3BvbnNlIkkKE1N0b3BSZXF1ZXN0UmVzcG9uc2USHQoQZm9sbG93dXBfbWVzc2FnZRgBIAEoCUgAiAEBQhMKEV9mb2xsb3d1cF9tZXNzYWdlIp0FChJFeGVjdXRlSG9va1JlcXVlc3QSNwoLcHJlX2NvbXBhY3QYASABKAsyIC5hZ2VudC52MS5QcmVDb21wYWN0UmVxdWVzdFF1ZXJ5SAASPQoOc3ViYWdlbnRfc3RhcnQYAiABKAsyIy5hZ2VudC52MS5TdWJhZ2VudFN0YXJ0UmVxdWVzdFF1ZXJ5SAASOwoNc3ViYWdlbnRfc3RvcBgDIAEoCzIiLmFnZW50LnYxLlN1YmFnZW50U3RvcFJlcXVlc3RRdWVyeUgAEjgKDHByZV90b29sX3VzZRgEIAEoCzIgLmFnZW50LnYxLlByZVRvb2xVc2VSZXF1ZXN0UXVlcnlIABI6Cg1wb3N0X3Rvb2xfdXNlGAUgASgLMiEuYWdlbnQudjEuUG9zdFRvb2xVc2VSZXF1ZXN0UXVlcnlIABJJChVwb3N0X3Rvb2xfdXNlX2ZhaWx1cmUYBiABKAsyKC5hZ2VudC52MS5Qb3N0VG9vbFVzZUZhaWx1cmVSZXF1ZXN0UXVlcnlIABJIChRiZWZvcmVfc3VibWl0X3Byb21wdBgHIAEoCzIoLmFnZW50LnYxLkJlZm9yZVN1Ym1pdFByb21wdFJlcXVlc3RRdWVyeUgAEkgKFGFmdGVyX2FnZW50X3Jlc3BvbnNlGAggASgLMiguYWdlbnQudjEuQWZ0ZXJBZ2VudFJlc3BvbnNlUmVxdWVzdFF1ZXJ5SAASRgoTYWZ0ZXJfYWdlbnRfdGhvdWdodBgJIAEoCzInLmFnZW50LnYxLkFmdGVyQWdlbnRUaG91Z2h0UmVxdWVzdFF1ZXJ5SAASKgoEc3RvcBgLIAEoCzIaLmFnZW50LnYxLlN0b3BSZXF1ZXN0UXVlcnlIAEIJCgdyZXF1ZXN0Ir0FChNFeGVjdXRlSG9va1Jlc3BvbnNlEjoKC3ByZV9jb21wYWN0GAEgASgLMiMuYWdlbnQudjEuUHJlQ29tcGFjdFJlcXVlc3RSZXNwb25zZUgAEkAKDnN1YmFnZW50X3N0YXJ0GAIgASgLMiYuYWdlbnQudjEuU3ViYWdlbnRTdGFydFJlcXVlc3RSZXNwb25zZUgAEj4KDXN1YmFnZW50X3N0b3AYAyABKAsyJS5hZ2VudC52MS5TdWJhZ2VudFN0b3BSZXF1ZXN0UmVzcG9uc2VIABI7CgxwcmVfdG9vbF91c2UYBCABKAsyIy5hZ2VudC52MS5QcmVUb29sVXNlUmVxdWVzdFJlc3BvbnNlSAASPQoNcG9zdF90b29sX3VzZRgFIAEoCzIkLmFnZW50LnYxLlBvc3RUb29sVXNlUmVxdWVzdFJlc3BvbnNlSAASTAoVcG9zdF90b29sX3VzZV9mYWlsdXJlGAYgASgLMisuYWdlbnQudjEuUG9zdFRvb2xVc2VGYWlsdXJlUmVxdWVzdFJlc3BvbnNlSAASSwoUYmVmb3JlX3N1Ym1pdF9wcm9tcHQYByABKAsyKy5hZ2VudC52MS5CZWZvcmVTdWJtaXRQcm9tcHRSZXF1ZXN0UmVzcG9uc2VIABJLChRhZnRlcl9hZ2VudF9yZXNwb25zZRgIIAEoCzIrLmFnZW50LnYxLkFmdGVyQWdlbnRSZXNwb25zZVJlcXVlc3RSZXNwb25zZUgAEkkKE2FmdGVyX2FnZW50X3Rob3VnaHQYCSABKAsyKi5hZ2VudC52MS5BZnRlckFnZW50VGhvdWdodFJlcXVlc3RSZXNwb25zZUgAEi0KBHN0b3AYCyABKAsyHS5hZ2VudC52MS5TdG9wUmVxdWVzdFJlc3BvbnNlSABCCgoIcmVzcG9uc2UiQAoPRXhlY3V0ZUhvb2tBcmdzEi0KB3JlcXVlc3QYASABKAsyHC5hZ2VudC52MS5FeGVjdXRlSG9va1JlcXVlc3QiRAoRRXhlY3V0ZUhvb2tSZXN1bHQSLwoIcmVzcG9uc2UYASABKAsyHS5hZ2VudC52MS5FeGVjdXRlSG9va1Jlc3BvbnNlIiUKE1NtYXJ0TW9kZVJpc2tUYXJnZXQSDgoGYWN0aW9uGAEgASgJIkcKJlNtYXJ0TW9kZUNsYXNzaWZpZXJDb252ZXJzYXRpb25NZXNzYWdlEgwKBHJvbGUYASABKAkSDwoHY29udGVudBgCIAEoCSLuAQoXU21hcnRNb2RlQ2xhc3NpZmllckFyZ3MSFAoMdG9vbF9jYWxsX2lkGAEgASgJEiMKFnBhcmVudF9jb252ZXJzYXRpb25faWQYAiABKAlIAIgBARItCgZ0YXJnZXQYAyABKAsyHS5hZ2VudC52MS5TbWFydE1vZGVSaXNrVGFyZ2V0Ek4KFGNvbnZlcnNhdGlvbl9jb250ZXh0GAQgAygLMjAuYWdlbnQudjEuU21hcnRNb2RlQ2xhc3NpZmllckNvbnZlcnNhdGlvbk1lc3NhZ2VCGQoXX3BhcmVudF9jb252ZXJzYXRpb25faWQigQEKGlNtYXJ0TW9kZUNsYXNzaWZpZXJTdWNjZXNzEjcKCGRlY2lzaW9uGAEgASgOMiUuYWdlbnQudjEuU21hcnRNb2RlQ2xhc3NpZmllckRlY2lzaW9uEhkKDGJsb2NrX3JlYXNvbhgCIAEoCUgAiAEBQg8KDV9ibG9ja19yZWFzb24iKQoYU21hcnRNb2RlQ2xhc3NpZmllckVycm9yEg0KBWVycm9yGAEgASgJIpMBChlTbWFydE1vZGVDbGFzc2lmaWVyUmVzdWx0EjcKB3N1Y2Nlc3MYASABKAsyJC5hZ2VudC52MS5TbWFydE1vZGVDbGFzc2lmaWVyU3VjY2Vzc0gAEjMKBWVycm9yGAIgASgLMiIuYWdlbnQudjEuU21hcnRNb2RlQ2xhc3NpZmllckVycm9ySABCCAoGcmVzdWx0IjsKFUNhbnZhc0RpYWdub3N0aWNzQXJncxIMCgRwYXRoGAEgASgJEhQKDHRvb2xfY2FsbF9pZBgCIAEoCSJTChhDYW52YXNEaWFnbm9zdGljc1N1Y2Nlc3MSDAoEcGF0aBgBIAEoCRIpCgtkaWFnbm9zdGljcxgCIAMoCzIULmFnZW50LnYxLkRpYWdub3N0aWMiNQoWQ2FudmFzRGlhZ25vc3RpY3NFcnJvchIMCgRwYXRoGAEgASgJEg0KBWVycm9yGAIgASgJIo0BChdDYW52YXNEaWFnbm9zdGljc1Jlc3VsdBI1CgdzdWNjZXNzGAEgASgLMiIuYWdlbnQudjEuQ2FudmFzRGlhZ25vc3RpY3NTdWNjZXNzSAASMQoFZXJyb3IYAiABKAsyIC5hZ2VudC52MS5DYW52YXNEaWFnbm9zdGljc0Vycm9ySABCCAoGcmVzdWx0IqwBChVDb252ZXJzYXRpb25TZWFyY2hIaXQSFwoPY29udmVyc2F0aW9uX2lkGAEgASgJEg0KBXRpdGxlGAIgASgJEjIKBnNvdXJjZRgDIAEoDjIiLmFnZW50LnYxLkNvbnZlcnNhdGlvblNlYXJjaFNvdXJjZRIVCg11cGRhdGVkX2F0X21zGAQgASgDEhQKB3NuaXBwZXQYBSABKAlIAIgBAUIKCghfc25pcHBldCKCAQoZQ29udmVyc2F0aW9uU2VhcmNoU3VjY2VzcxItCgRoaXRzGAEgAygLMh8uYWdlbnQudjEuQ29udmVyc2F0aW9uU2VhcmNoSGl0EhEKCXRydW5jYXRlZBgCIAEoCBIPCgdwYXJ0aWFsGAMgASgIEhIKCnJlYnVpbGRpbmcYBCABKAgiKAoXQ29udmVyc2F0aW9uU2VhcmNoRXJyb3ISDQoFZXJyb3IYASABKAkiWwoWQ29udmVyc2F0aW9uU2VhcmNoQXJncxINCgVxdWVyeRgBIAEoCRIUCgx0b29sX2NhbGxfaWQYAiABKAkSEgoFbGltaXQYAyABKAVIAIgBAUIICgZfbGltaXQikAEKGENvbnZlcnNhdGlvblNlYXJjaFJlc3VsdBI2CgdzdWNjZXNzGAEgASgLMiMuYWdlbnQudjEuQ29udmVyc2F0aW9uU2VhcmNoU3VjY2Vzc0gAEjIKBWVycm9yGAIgASgLMiEuYWdlbnQudjEuQ29udmVyc2F0aW9uU2VhcmNoRXJyb3JIAEIICgZyZXN1bHQiVQoYQWdlbnRTdG9yZUNvbmZsaWN0Q3Vyc29yEhUKDWpvdXJuYWxfZXBvY2gYASABKAkSCwoDc2VxGAIgASgEEhUKDWxhc3RfZXZlbnRfaWQYAyABKAkipQMKF0FnZW50U3RvcmVDb25mbGljdEV2ZW50EgkKAXYYASABKA0SEAoIZXZlbnRfaWQYAiABKAkSFQoNam91cm5hbF9lcG9jaBgDIAEoCRILCgNzZXEYBCABKAQSDQoFdHNfbXMYBSABKAQSDAoEa2luZBgGIAEoCRIVCghzdG9yZV9pZBgHIAEoCUgAiAEBEh4KEW9yaWdpbmFsX3JlbF9wYXRoGAggASgJSAGIAQESHgoRY29uZmxpY3RfcmVsX3BhdGgYCSABKAlIAogBARIeChFvcmlnaW5hbF9hYnNfcGF0aBgKIAEoCUgDiAEBEh4KEWNvbmZsaWN0X2Fic19wYXRoGAsgASgJSASIAQESHAoPcHJlc2VydmVkX2J5dGVzGAwgASgESAWIAQFCCwoJX3N0b3JlX2lkQhQKEl9vcmlnaW5hbF9yZWxfcGF0aEIUChJfY29uZmxpY3RfcmVsX3BhdGhCFAoSX29yaWdpbmFsX2Fic19wYXRoQhQKEl9jb25mbGljdF9hYnNfcGF0aEISChBfcHJlc2VydmVkX2J5dGVzIpQBChlBZ2VudFN0b3JlQ29uZmxpY3RTdWNjZXNzEjEKBmV2ZW50cxgBIAMoCzIhLmFnZW50LnYxLkFnZW50U3RvcmVDb25mbGljdEV2ZW50EjcKC25leHRfY3Vyc29yGAIgASgLMiIuYWdlbnQudjEuQWdlbnRTdG9yZUNvbmZsaWN0Q3Vyc29yEgsKA2dhcBgDIAEoCCIoChdBZ2VudFN0b3JlQ29uZmxpY3RFcnJvchINCgVlcnJvchgBIAEoCSJ+ChZBZ2VudFN0b3JlQ29uZmxpY3RBcmdzEjcKBmN1cnNvchgBIAEoCzIiLmFnZW50LnYxLkFnZW50U3RvcmVDb25mbGljdEN1cnNvckgAiAEBEhQKB2FkdmFuY2UYAiABKAhIAYgBAUIJCgdfY3Vyc29yQgoKCF9hZHZhbmNlIpABChhBZ2VudFN0b3JlQ29uZmxpY3RSZXN1bHQSNgoHc3VjY2VzcxgBIAEoCzIjLmFnZW50LnYxLkFnZW50U3RvcmVDb25mbGljdFN1Y2Nlc3NIABIyCgVlcnJvchgCIAEoCzIhLmFnZW50LnYxLkFnZW50U3RvcmVDb25mbGljdEVycm9ySABCCAoGcmVzdWx0InwKDkZpbGVEaWZmX0NodW5rEg8KB2NvbnRlbnQYASABKAkSDQoFbGluZXMYAiADKAkSEQoJb2xkX3N0YXJ0GAMgASgFEhEKCW9sZF9saW5lcxgEIAEoBRIRCgluZXdfc3RhcnQYBSABKAUSEQoJbmV3X2xpbmVzGAYgASgFIpACCghGaWxlRGlmZhINCgVhZGRlZBgEIAEoBRIPCgdyZW1vdmVkGAUgASgFEgwKBGZyb20YASABKAkSCgoCdG8YAiABKAkSKAoGY2h1bmtzGAMgAygLMhguYWdlbnQudjEuRmlsZURpZmZfQ2h1bmsSIQoUYmVmb3JlX2ZpbGVfY29udGVudHMYBiABKAlIAIgBARIgChNhZnRlcl9maWxlX2NvbnRlbnRzGAcgASgJSAGIAQESGQoMaXNfZ2VuZXJhdGVkGAggASgISAKIAQFCFwoVX2JlZm9yZV9maWxlX2NvbnRlbnRzQhYKFF9hZnRlcl9maWxlX2NvbnRlbnRzQg8KDV9pc19nZW5lcmF0ZWQiWwoHR2l0RGlmZhIhCgVkaWZmcxgBIAMoCzISLmFnZW50LnYxLkZpbGVEaWZmEi0KCWRpZmZfdHlwZRgCIAEoDjIaLmFnZW50LnYxLkdpdERpZmZfRGlmZlR5cGUiaAodR2V0RGlmZlJlc3BvbnNlX1N1Ym1vZHVsZURpZmYSFQoNcmVsYXRpdmVfcGF0aBgBIAEoCRIfCgRkaWZmGAIgASgLMhEuYWdlbnQudjEuR2l0RGlmZhIPCgdlcnJvcmVkGAMgASgIIvIDCg5HZXREaWZmUmVxdWVzdBILCgNjd2QYASABKAkSCwoDcmVmGAIgASgJEhAKCGJhc2VfcmVmGAMgASgJEhIKCm1lcmdlX2Jhc2UYBCABKAgSFAoMdGFyZ2V0X3BhdGhzGAUgAygJEiIKFXVuaWZpZWRfY29udGV4dF9saW5lcxgGIAEoBUgAiAEBEhsKE21heF91bnRyYWNrZWRfZmlsZXMYByABKAUSHwoXc3VibW9kdWxlX3JlY3Vyc2VfZGVwdGgYCSABKAUSHQoVaW5jbHVkZV9zcGFjZV9jaGFuZ2VzGAogASgIEhYKDmNvbW1pdHRlZF9vbmx5GAsgASgIEhgKEGNvbXB1dGVfcGF0Y2hfaWQYDCABKAgSHAoPcmV0dXJuX2hlYWRfc2hhGA0gASgISAGIAQESHwoSbWF4X3Jlc3BvbnNlX2J5dGVzGA4gASgFSAKIAQESQQoNb3V0cHV0X2Zvcm1hdBgIIAEoDjIlLmFnZW50LnYxLkdldERpZmZSZXF1ZXN0X091dHB1dEZvcm1hdEgDiAEBQhgKFl91bmlmaWVkX2NvbnRleHRfbGluZXNCEgoQX3JldHVybl9oZWFkX3NoYUIVChNfbWF4X3Jlc3BvbnNlX2J5dGVzQhAKDl9vdXRwdXRfZm9ybWF0Iv4BCg9HZXREaWZmUmVzcG9uc2USHwoEZGlmZhgBIAEoCzIRLmFnZW50LnYxLkdpdERpZmYSQAoPc3VibW9kdWxlX2RpZmZzGAIgAygLMicuYWdlbnQudjEuR2V0RGlmZlJlc3BvbnNlX1N1Ym1vZHVsZURpZmYSFQoIcGF0Y2hfaWQYAyABKAlIAIgBARIVCghoZWFkX3NoYRgEIAEoCUgBiAEBEiQKF2hhc191bmNvbW1pdHRlZF9jaGFuZ2VzGAUgASgISAKIAQFCCwoJX3BhdGNoX2lkQgsKCV9oZWFkX3NoYUIaChhfaGFzX3VuY29tbWl0dGVkX2NoYW5nZXMqiAEKHUFwcGxpZWRBZ2VudENoYW5nZV9DaGFuZ2VUeXBlEhsKF0NIQU5HRV9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTQ0hBTkdFX1RZUEVfQ1JFQVRFRBABEhgKFENIQU5HRV9UWVBFX01PRElGSUVEEAISFwoTQ0hBTkdFX1RZUEVfREVMRVRFRBADKqQBCgtNb3VzZUJ1dHRvbhIcChhNT1VTRV9CVVRUT05fVU5TUEVDSUZJRUQQABIVChFNT1VTRV9CVVRUT05fTEVGVBABEhYKEk1PVVNFX0JVVFRPTl9SSUdIVBACEhcKE01PVVNFX0JVVFRPTl9NSURETEUQAxIVChFNT1VTRV9CVVRUT05fQkFDSxAEEhgKFE1PVVNFX0JVVFRPTl9GT1JXQVJEEAUqngEKD1Njcm9sbERpcmVjdGlvbhIgChxTQ1JPTExfRElSRUNUSU9OX1VOU1BFQ0lGSUVEEAASFwoTU0NST0xMX0RJUkVDVElPTl9VUBABEhkKFVNDUk9MTF9ESVJFQ1RJT05fRE9XThACEhkKFVNDUk9MTF9ESVJFQ1RJT05fTEVGVBADEhoKFlNDUk9MTF9ESVJFQ1RJT05fUklHSFQQBCpwChBDdXJzb3JSdWxlU291cmNlEiIKHkNVUlNPUl9SVUxFX1NPVVJDRV9VTlNQRUNJRklFRBAAEhsKF0NVUlNPUl9SVUxFX1NPVVJDRV9URUFNEAESGwoXQ1VSU09SX1JVTEVfU09VUkNFX1VTRVIQAiq8AQoSRGlhZ25vc3RpY1NldmVyaXR5EiMKH0RJQUdOT1NUSUNfU0VWRVJJVFlfVU5TUEVDSUZJRUQQABIdChlESUFHTk9TVElDX1NFVkVSSVRZX0VSUk9SEAESHwobRElBR05PU1RJQ19TRVZFUklUWV9XQVJOSU5HEAISIwofRElBR05PU1RJQ19TRVZFUklUWV9JTkZPUk1BVElPThADEhwKGERJQUdOT1NUSUNfU0VWRVJJVFlfSElOVBAEKpwBCg1SZWNvcmRpbmdNb2RlEh4KGlJFQ09SRElOR19NT0RFX1VOU1BFQ0lGSUVEEAASIgoeUkVDT1JESU5HX01PREVfU1RBUlRfUkVDT1JESU5HEAESIQodUkVDT1JESU5HX01PREVfU0FWRV9SRUNPUkRJTkcQAhIkCiBSRUNPUkRJTkdfTU9ERV9ESVNDQVJEX1JFQ09SRElORxADKpMBCh9SZXF1ZXN0ZWRGaWxlUGF0aFJlamVjdGVkUmVhc29uEjMKL1JFUVVFU1RFRF9GSUxFX1BBVEhfUkVKRUNURURfUkVBU09OX1VOU1BFQ0lGSUVEEAASOwo3UkVRVUVTVEVEX0ZJTEVfUEFUSF9SRUpFQ1RFRF9SRUFTT05fU0xBU0hFU19OT1RfQUxMT1dFRBABKq0BCgtQYWNrYWdlVHlwZRIcChhQQUNLQUdFX1RZUEVfVU5TUEVDSUZJRUQQABIfChtQQUNLQUdFX1RZUEVfQ1VSU09SX1BST0pFQ1QQARIgChxQQUNLQUdFX1RZUEVfQ1VSU09SX1BFUlNPTkFMEAISHQoZUEFDS0FHRV9UWVBFX0NMQVVERV9TS0lMTBADEh4KGlBBQ0tBR0VfVFlQRV9DTEFVREVfUExVR0lOEAQqfQoSU2FuZGJveFBvbGljeV9UeXBlEhQKEFRZUEVfVU5TUEVDSUZJRUQQABIWChJUWVBFX0lOU0VDVVJFX05PTkUQARIcChhUWVBFX1dPUktTUEFDRV9SRUFEV1JJVEUQAhIbChdUWVBFX1dPUktTUEFDRV9SRUFET05MWRADKnEKD1RpbWVvdXRCZWhhdmlvchIgChxUSU1FT1VUX0JFSEFWSU9SX1VOU1BFQ0lGSUVEEAASGwoXVElNRU9VVF9CRUhBVklPUl9DQU5DRUwQARIfChtUSU1FT1VUX0JFSEFWSU9SX0JBQ0tHUk9VTkQQAip5ChBTaGVsbEFib3J0UmVhc29uEiIKHlNIRUxMX0FCT1JUX1JFQVNPTl9VTlNQRUNJRklFRBAAEiEKHVNIRUxMX0FCT1JUX1JFQVNPTl9VU0VSX0FCT1JUEAESHgoaU0hFTExfQUJPUlRfUkVBU09OX1RJTUVPVVQQAiqqAQocQ3VzdG9tU3ViYWdlbnRQZXJtaXNzaW9uTW9kZRIvCitDVVNUT01fU1VCQUdFTlRfUEVSTUlTU0lPTl9NT0RFX1VOU1BFQ0lGSUVEEAASKwonQ1VTVE9NX1NVQkFHRU5UX1BFUk1JU1NJT05fTU9ERV9ERUZBVUxUEAESLAooQ1VTVE9NX1NVQkFHRU5UX1BFUk1JU1NJT05fTU9ERV9SRUFET05MWRACKpUBCgpUb2RvU3RhdHVzEhsKF1RPRE9fU1RBVFVTX1VOU1BFQ0lGSUVEEAASFwoTVE9ET19TVEFUVVNfUEVORElORxABEhsKF1RPRE9fU1RBVFVTX0lOX1BST0dSRVNTEAISGQoVVE9ET19TVEFUVVNfQ09NUExFVEVEEAMSGQoVVE9ET19TVEFUVVNfQ0FOQ0VMTEVEEAQqZgoIQ2xpZW50T1MSGQoVQ0xJRU5UX09TX1VOU1BFQ0lGSUVEEAASFQoRQ0xJRU5UX09TX1dJTkRPV1MQARITCg9DTElFTlRfT1NfTUFDT1MQAhITCg9DTElFTlRfT1NfTElOVVgQAyrsAQocQXJ0aWZhY3RVcGxvYWREaXNwYXRjaFN0YXR1cxIvCitBUlRJRkFDVF9VUExPQURfRElTUEFUQ0hfU1RBVFVTX1VOU1BFQ0lGSUVEEAASLAooQVJUSUZBQ1RfVVBMT0FEX0RJU1BBVENIX1NUQVRVU19BQ0NFUFRFRBABEiwKKEFSVElGQUNUX1VQTE9BRF9ESVNQQVRDSF9TVEFUVVNfUkVKRUNURUQQAhI/CjtBUlRJRkFDVF9VUExPQURfRElTUEFUQ0hfU1RBVFVTX1NLSVBQRURfQUxSRUFEWV9JTl9QUk9HUkVTUxADKlcKCkZyYW1lX0tpbmQSFAoQS0lORF9VTlNQRUNJRklFRBAAEhAKDEtJTkRfUkVRVUVTVBABEhEKDUtJTkRfUkVTUE9OU0UQAhIOCgpLSU5EX0VSUk9SEAMqsAIKF0J1Z2JvdERlZXBsaW5rRXZlbnRLaW5kEioKJkJVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX1VOU1BFQ0lGSUVEEAASJgoiQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfQ0xJQ0tFRBABEjMKL0JVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX0hBTkRMRURfRElBTE9HX1NIT1dOEAISMwovQlVHQk9UX0RFRVBMSU5LX0VWRU5UX0tJTkRfSEFORExFRF9DSEFUX0NSRUFURUQQAxIkCiBCVUdCT1RfREVFUExJTktfRVZFTlRfS0lORF9FUlJPUhAEEjEKLUJVR0JPVF9ERUVQTElOS19FVkVOVF9LSU5EX0hBTkRMRURfRklYX0lOX1dFQhAFKsoBCixDb21tYW5kQ2xhc3NpZmllclJlc3VsdF9TdWdnZXN0ZWRTYW5kYm94TW9kZRImCiJTVUdHRVNURURfU0FOREJPWF9NT0RFX1VOU1BFQ0lGSUVEEAASIgoeU1VHR0VTVEVEX1NBTkRCT1hfTU9ERV9TQU5EQk9YEAESJQohU1VHR0VTVEVEX1NBTkRCT1hfTU9ERV9OT19TQU5EQk9YEAISJwojU1VHR0VTVEVEX1NBTkRCT1hfTU9ERV9VTkRFVEVSTUlORUQQAyqQAQohU2hlbGxIb29rQXBwcm92YWxSZXF1aXJlbWVudF9LaW5kEjQKMFNIRUxMX0hPT0tfQVBQUk9WQUxfUkVRVUlSRU1FTlRfS0lORF9VTlNQRUNJRklFRBAAEjUKMVNIRUxMX0hPT0tfQVBQUk9WQUxfUkVRVUlSRU1FTlRfS0lORF9GT1JDRV9QUk9NUFQQASqPAQoVU2hlbGxCYWNrZ3JvdW5kUmVhc29uEicKI1NIRUxMX0JBQ0tHUk9VTkRfUkVBU09OX1VOU1BFQ0lGSUVEEAASIwofU0hFTExfQkFDS0dST1VORF9SRUFTT05fVElNRU9VVBABEigKJFNIRUxMX0JBQ0tHUk9VTkRfUkVBU09OX1VTRVJfUkVRVUVTVBACKqQBChpGb3JjZUJhY2tncm91bmRTaGVsbFN0YXR1cxItCilGT1JDRV9CQUNLR1JPVU5EX1NIRUxMX1NUQVRVU19VTlNQRUNJRklFRBAAEioKJkZPUkNFX0JBQ0tHUk9VTkRfU0hFTExfU1RBVFVTX0FDQ0VQVEVEEAESKwonRk9SQ0VfQkFDS0dST1VORF9TSEVMTF9TVEFUVVNfTk9UX0ZPVU5EEAIq0gEKGFN1YmFnZW50QmFja2dyb3VuZFJlYXNvbhIqCiZTVUJBR0VOVF9CQUNLR1JPVU5EX1JFQVNPTl9VTlNQRUNJRklFRBAAEiwKKFNVQkFHRU5UX0JBQ0tHUk9VTkRfUkVBU09OX0FHRU5UX1JFUVVFU1QQARIrCidTVUJBR0VOVF9CQUNLR1JPVU5EX1JFQVNPTl9VU0VSX1JFUVVFU1QQAhIvCitTVUJBR0VOVF9CQUNLR1JPVU5EX1JFQVNPTl9RVUVVRURfRk9MTE9XX1VQEAMqsAEKHUZvcmNlQmFja2dyb3VuZFN1YmFnZW50U3RhdHVzEjAKLEZPUkNFX0JBQ0tHUk9VTkRfU1VCQUdFTlRfU1RBVFVTX1VOU1BFQ0lGSUVEEAASLQopRk9SQ0VfQkFDS0dST1VORF9TVUJBR0VOVF9TVEFUVVNfQUNDRVBURUQQARIuCipGT1JDRV9CQUNLR1JPVU5EX1NVQkFHRU5UX1NUQVRVU19OT1RfRk9VTkQQAiqhAQobU21hcnRNb2RlQ2xhc3NpZmllckRlY2lzaW9uEi4KKlNNQVJUX01PREVfQ0xBU1NJRklFUl9ERUNJU0lPTl9VTlNQRUNJRklFRBAAEigKJFNNQVJUX01PREVfQ0xBU1NJRklFUl9ERUNJU0lPTl9BTExPVxABEigKJFNNQVJUX01PREVfQ0xBU1NJRklFUl9ERUNJU0lPTl9CTE9DSxACKpgBChhDb252ZXJzYXRpb25TZWFyY2hTb3VyY2USKgomQ09OVkVSU0FUSU9OX1NFQVJDSF9TT1VSQ0VfVU5TUEVDSUZJRUQQABIkCiBDT05WRVJTQVRJT05fU0VBUkNIX1NPVVJDRV9MT0NBTBABEioKJkNPTlZFUlNBVElPTl9TRUFSQ0hfU09VUkNFX0NMT1VEX0NBQ0hFEAIq0wEKG0dldERpZmZSZXF1ZXN0X091dHB1dEZvcm1hdBIdChlPVVRQVVRfRk9STUFUX1VOU1BFQ0lGSUVEEAASHQoZT1VUUFVUX0ZPUk1BVF9OQU1FX1NUQVRVUxABEikKJU9VVFBVVF9GT1JNQVRfTkFNRV9TVEFUVVNfQU5EX05VTVNUQVQQAhIcChhPVVRQVVRfRk9STUFUX0ZJTEVfRElGRlMQAxItCilPVVRQVVRfRk9STUFUX0RJRkZTX1dJVEhfQkVGT1JFX0FORF9BRlRFUhAEKnEKEEdpdERpZmZfRGlmZlR5cGUSGQoVRElGRl9UWVBFX1VOU1BFQ0lGSUVEEAASGgoWRElGRl9UWVBFX0RJRkZfVE9fSEVBRBABEiYKIkRJRkZfVFlQRV9ESUZGX0ZST01fQlJBTkNIX1RPX01BSU4QAjKHBAoMQWdlbnRTZXJ2aWNlEkEKA1J1bhIcLmFnZW50LnYxLkFnZW50Q2xpZW50TWVzc2FnZRocLmFnZW50LnYxLkFnZW50U2VydmVyTWVzc2FnZRI/CgZSdW5TU0USFy5hZ2VudC52MS5CaWRpUmVxdWVzdElkGhwuYWdlbnQudjEuQWdlbnRTZXJ2ZXJNZXNzYWdlEkQKCU5hbWVBZ2VudBIaLmFnZW50LnYxLk5hbWVBZ2VudFJlcXVlc3QaGy5hZ2VudC52MS5OYW1lQWdlbnRSZXNwb25zZRJWCg9HZXRVc2FibGVNb2RlbHMSIC5hZ2VudC52MS5HZXRVc2FibGVNb2RlbHNSZXF1ZXN0GiEuYWdlbnQudjEuR2V0VXNhYmxlTW9kZWxzUmVzcG9uc2USaAoVR2V0RGVmYXVsdE1vZGVsRm9yQ2xpEiYuYWdlbnQudjEuR2V0RGVmYXVsdE1vZGVsRm9yQ2xpUmVxdWVzdBonLmFnZW50LnYxLkdldERlZmF1bHRNb2RlbEZvckNsaVJlc3BvbnNlEmsKFkdldEFsbG93ZWRNb2RlbEludGVudHMSJy5hZ2VudC52MS5HZXRBbGxvd2VkTW9kZWxJbnRlbnRzUmVxdWVzdBooLmFnZW50LnYxLkdldEFsbG93ZWRNb2RlbEludGVudHNSZXNwb25zZTK1CAoOQ29udHJvbFNlcnZpY2USTQoMUmVhZFRleHRGaWxlEh0uYWdlbnQudjEuUmVhZFRleHRGaWxlUmVxdWVzdBoeLmFnZW50LnYxLlJlYWRUZXh0RmlsZVJlc3BvbnNlElAKDVdyaXRlVGV4dEZpbGUSHi5hZ2VudC52MS5Xcml0ZVRleHRGaWxlUmVxdWVzdBofLmFnZW50LnYxLldyaXRlVGV4dEZpbGVSZXNwb25zZRJTCg5SZWFkQmluYXJ5RmlsZRIfLmFnZW50LnYxLlJlYWRCaW5hcnlGaWxlUmVxdWVzdBogLmFnZW50LnYxLlJlYWRCaW5hcnlGaWxlUmVzcG9uc2USVgoPV3JpdGVCaW5hcnlGaWxlEiAuYWdlbnQudjEuV3JpdGVCaW5hcnlGaWxlUmVxdWVzdBohLmFnZW50LnYxLldyaXRlQmluYXJ5RmlsZVJlc3BvbnNlEm4KF0dldFdvcmtzcGFjZUNoYW5nZXNIYXNoEiguYWdlbnQudjEuR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXF1ZXN0GikuYWdlbnQudjEuR2V0V29ya3NwYWNlQ2hhbmdlc0hhc2hSZXNwb25zZRJxChhSZWZyZXNoR2l0aHViQWNjZXNzVG9rZW4SKS5hZ2VudC52MS5SZWZyZXNoR2l0aHViQWNjZXNzVG9rZW5SZXF1ZXN0GiouYWdlbnQudjEuUmVmcmVzaEdpdGh1YkFjY2Vzc1Rva2VuUmVzcG9uc2USawoWV2FybVJlbW90ZUFjY2Vzc1NlcnZlchInLmFnZW50LnYxLldhcm1SZW1vdGVBY2Nlc3NTZXJ2ZXJSZXF1ZXN0GiguYWdlbnQudjEuV2FybVJlbW90ZUFjY2Vzc1NlcnZlclJlc3BvbnNlElAKDUxpc3RBcnRpZmFjdHMSHi5hZ2VudC52MS5MaXN0QXJ0aWZhY3RzUmVxdWVzdBofLmFnZW50LnYxLkxpc3RBcnRpZmFjdHNSZXNwb25zZRJWCg9VcGxvYWRBcnRpZmFjdHMSIC5hZ2VudC52MS5VcGxvYWRBcnRpZmFjdHNSZXF1ZXN0GiEuYWdlbnQudjEuVXBsb2FkQXJ0aWZhY3RzUmVzcG9uc2USYgoTR2V0TWNwUmVmcmVzaFRva2VucxIkLmFnZW50LnYxLkdldE1jcFJlZnJlc2hUb2tlbnNSZXF1ZXN0GiUuYWdlbnQudjEuR2V0TWNwUmVmcmVzaFRva2Vuc1Jlc3BvbnNlEncKGlVwZGF0ZUVudmlyb25tZW50VmFyaWFibGVzEisuYWdlbnQudjEuVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXF1ZXN0GiwuYWdlbnQudjEuVXBkYXRlRW52aXJvbm1lbnRWYXJpYWJsZXNSZXNwb25zZTINCgtFeGVjU2VydmljZTJRCiJQcml2YXRlV29ya2VyQnJpZGdlRXh0ZXJuYWxTZXJ2aWNlEisKB0Nvbm5lY3QSDy5hZ2VudC52MS5GcmFtZRoPLmFnZW50LnYxLkZyYW1lMngKEExpZmVjeWNsZVNlcnZpY2USMQoNUmVzZXRJbnN0YW5jZRIPLmFnZW50LnYxLkVtcHR5Gg8uYWdlbnQudjEuRW1wdHkSMQoNUmVuZXdJbnN0YW5jZRIPLmFnZW50LnYxLkVtcHR5Gg8uYWdlbnQudjEuRW1wdHliBnByb3RvMw"); /** * @generated from message agent.v1.GlobToolResult */ export type GlobToolResult = Message<"agent.v1.GlobToolResult"> & { - /** - * @generated from oneof agent.v1.GlobToolResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.GlobToolSuccess success = 1; - */ - value: GlobToolSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.GlobToolError error = 2; - */ - value: GlobToolError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.GlobToolResult.result + */ + result: { + /** + * @generated from field: agent.v1.GlobToolSuccess success = 1; + */ + value: GlobToolSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.GlobToolError error = 2; + */ + value: GlobToolError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GlobToolResult. * Use `create(GlobToolResultSchema)` to create a new message. */ -export const GlobToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 0); +export const GlobToolResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 0); /** * @generated from message agent.v1.GlobToolError */ export type GlobToolError = Message<"agent.v1.GlobToolError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.GlobToolError. * Use `create(GlobToolErrorSchema)` to create a new message. */ -export const GlobToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 1); +export const GlobToolErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 1); /** * Only file results are needed for this tool @@ -68,277 +64,290 @@ export const GlobToolErrorSchema: GenMessage = /*@__PURE__*/ mess * @generated from message agent.v1.GlobToolSuccess */ export type GlobToolSuccess = Message<"agent.v1.GlobToolSuccess"> & { - /** - * @generated from field: string pattern = 1; - */ - pattern: string; + /** + * @generated from field: string pattern = 1; + */ + pattern: string; - /** - * @generated from field: string path = 2; - */ - path: string; + /** + * @generated from field: string path = 2; + */ + path: string; - /** - * @generated from field: repeated string files = 3; - */ - files: string[]; + /** + * @generated from field: repeated string files = 3; + */ + files: string[]; - /** - * @generated from field: int32 total_files = 4; - */ - totalFiles: number; + /** + * @generated from field: int32 total_files = 4; + */ + totalFiles: number; - /** - * @generated from field: bool client_truncated = 5; - */ - clientTruncated: boolean; + /** + * @generated from field: bool client_truncated = 5; + */ + clientTruncated: boolean; - /** - * @generated from field: bool ripgrep_truncated = 6; - */ - ripgrepTruncated: boolean; + /** + * @generated from field: bool ripgrep_truncated = 6; + */ + ripgrepTruncated: boolean; }; /** * Describes the message agent.v1.GlobToolSuccess. * Use `create(GlobToolSuccessSchema)` to create a new message. */ -export const GlobToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 2); +export const GlobToolSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 2); /** * @generated from message agent.v1.GlobToolCall */ export type GlobToolCall = Message<"agent.v1.GlobToolCall"> & { - /** - * @generated from field: bytes args = 1; - */ - args: Uint8Array; + /** + * @generated from field: bytes args = 1; + */ + args: Uint8Array; - /** - * @generated from field: agent.v1.GlobToolResult result = 2; - */ - result?: GlobToolResult; + /** + * @generated from field: agent.v1.GlobToolResult result = 2; + */ + result?: GlobToolResult | undefined; }; /** * Describes the message agent.v1.GlobToolCall. * Use `create(GlobToolCallSchema)` to create a new message. */ -export const GlobToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 3); +export const GlobToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 3); /** * @generated from message agent.v1.ReadLintsToolCall */ export type ReadLintsToolCall = Message<"agent.v1.ReadLintsToolCall"> & { - /** - * @generated from field: agent.v1.ReadLintsToolArgs args = 1; - */ - args?: ReadLintsToolArgs; + /** + * @generated from field: agent.v1.ReadLintsToolArgs args = 1; + */ + args?: ReadLintsToolArgs | undefined; - /** - * @generated from field: agent.v1.ReadLintsToolResult result = 2; - */ - result?: ReadLintsToolResult; + /** + * @generated from field: agent.v1.ReadLintsToolResult result = 2; + */ + result?: ReadLintsToolResult | undefined; }; /** * Describes the message agent.v1.ReadLintsToolCall. * Use `create(ReadLintsToolCallSchema)` to create a new message. */ -export const ReadLintsToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 4); +export const ReadLintsToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 4); /** * @generated from message agent.v1.ReadLintsToolArgs */ export type ReadLintsToolArgs = Message<"agent.v1.ReadLintsToolArgs"> & { - /** - * @generated from field: repeated string paths = 1; - */ - paths: string[]; + /** + * @generated from field: repeated string paths = 1; + */ + paths: string[]; }; /** * Describes the message agent.v1.ReadLintsToolArgs. * Use `create(ReadLintsToolArgsSchema)` to create a new message. */ -export const ReadLintsToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 5); +export const ReadLintsToolArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 5); /** * @generated from message agent.v1.ReadLintsToolResult */ export type ReadLintsToolResult = Message<"agent.v1.ReadLintsToolResult"> & { - /** - * @generated from oneof agent.v1.ReadLintsToolResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReadLintsToolSuccess success = 1; - */ - value: ReadLintsToolSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReadLintsToolError error = 2; - */ - value: ReadLintsToolError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadLintsToolResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReadLintsToolSuccess success = 1; + */ + value: ReadLintsToolSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReadLintsToolError error = 2; + */ + value: ReadLintsToolError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadLintsToolResult. * Use `create(ReadLintsToolResultSchema)` to create a new message. */ -export const ReadLintsToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 6); +export const ReadLintsToolResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 6); /** * @generated from message agent.v1.ReadLintsToolSuccess */ export type ReadLintsToolSuccess = Message<"agent.v1.ReadLintsToolSuccess"> & { - /** - * @generated from field: repeated agent.v1.FileDiagnostics file_diagnostics = 1; - */ - fileDiagnostics: FileDiagnostics[]; + /** + * @generated from field: repeated agent.v1.FileDiagnostics file_diagnostics = 1; + */ + fileDiagnostics: FileDiagnostics[]; - /** - * @generated from field: int32 total_files = 2; - */ - totalFiles: number; + /** + * @generated from field: int32 total_files = 2; + */ + totalFiles: number; - /** - * @generated from field: int32 total_diagnostics = 3; - */ - totalDiagnostics: number; + /** + * @generated from field: int32 total_diagnostics = 3; + */ + totalDiagnostics: number; }; /** * Describes the message agent.v1.ReadLintsToolSuccess. * Use `create(ReadLintsToolSuccessSchema)` to create a new message. */ -export const ReadLintsToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 7); +export const ReadLintsToolSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 7); /** * @generated from message agent.v1.FileDiagnostics */ export type FileDiagnostics = Message<"agent.v1.FileDiagnostics"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: repeated agent.v1.DiagnosticItem diagnostics = 2; - */ - diagnostics: DiagnosticItem[]; + /** + * @generated from field: repeated agent.v1.DiagnosticItem diagnostics = 2; + */ + diagnostics: DiagnosticItem[]; - /** - * @generated from field: int32 diagnostics_count = 3; - */ - diagnosticsCount: number; + /** + * @generated from field: int32 diagnostics_count = 3; + */ + diagnosticsCount: number; }; /** * Describes the message agent.v1.FileDiagnostics. * Use `create(FileDiagnosticsSchema)` to create a new message. */ -export const FileDiagnosticsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 8); +export const FileDiagnosticsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 8); /** * @generated from message agent.v1.DiagnosticItem */ export type DiagnosticItem = Message<"agent.v1.DiagnosticItem"> & { - /** - * @generated from field: agent.v1.DiagnosticSeverity severity = 1; - */ - severity: DiagnosticSeverity; + /** + * @generated from field: agent.v1.DiagnosticSeverity severity = 1; + */ + severity: DiagnosticSeverity; - /** - * @generated from field: agent.v1.DiagnosticRange range = 2; - */ - range?: DiagnosticRange; + /** + * @generated from field: agent.v1.DiagnosticRange range = 2; + */ + range?: DiagnosticRange | undefined; - /** - * @generated from field: string message = 3; - */ - message: string; + /** + * @generated from field: string message = 3; + */ + message: string; - /** - * @generated from field: string source = 4; - */ - source: string; + /** + * @generated from field: string source = 4; + */ + source: string; - /** - * @generated from field: string code = 5; - */ - code: string; + /** + * @generated from field: string code = 5; + */ + code: string; - /** - * @generated from field: bool is_stale = 6; - */ - isStale: boolean; + /** + * @generated from field: bool is_stale = 6; + */ + isStale: boolean; }; /** * Describes the message agent.v1.DiagnosticItem. * Use `create(DiagnosticItemSchema)` to create a new message. */ -export const DiagnosticItemSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 9); +export const DiagnosticItemSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 9); /** * @generated from message agent.v1.DiagnosticRange */ export type DiagnosticRange = Message<"agent.v1.DiagnosticRange"> & { - /** - * @generated from field: agent.v1.Position start = 1; - */ - start?: Position; + /** + * @generated from field: agent.v1.Position start = 1; + */ + start?: Position | undefined; - /** - * @generated from field: agent.v1.Position end = 2; - */ - end?: Position; + /** + * @generated from field: agent.v1.Position end = 2; + */ + end?: Position | undefined; }; /** * Describes the message agent.v1.DiagnosticRange. * Use `create(DiagnosticRangeSchema)` to create a new message. */ -export const DiagnosticRangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 10); +export const DiagnosticRangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 10); /** * @generated from message agent.v1.ReadLintsToolError */ export type ReadLintsToolError = Message<"agent.v1.ReadLintsToolError"> & { - /** - * @generated from field: string error_message = 1; - */ - errorMessage: string; + /** + * @generated from field: string error_message = 1; + */ + errorMessage: string; }; /** * Describes the message agent.v1.ReadLintsToolError. * Use `create(ReadLintsToolErrorSchema)` to create a new message. */ -export const ReadLintsToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 11); +export const ReadLintsToolErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 11); /** * @generated from message agent.v1.McpToolError */ export type McpToolError = Message<"agent.v1.McpToolError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; + + /** + * @generated from field: string read_tool_def_reminder = 2; + */ + readToolDefReminder: string; }; /** * Describes the message agent.v1.McpToolError. * Use `create(McpToolErrorSchema)` to create a new message. */ -export const McpToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 12); +export const McpToolErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 12); /** * Result for MCP tool calls (separate from exec results) @@ -346,637 +355,629 @@ export const McpToolErrorSchema: GenMessage = /*@__PURE__*/ messag * @generated from message agent.v1.McpToolResult */ export type McpToolResult = Message<"agent.v1.McpToolResult"> & { - /** - * @generated from oneof agent.v1.McpToolResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.McpSuccess success = 1; - */ - value: McpSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.McpToolError error = 2; - */ - value: McpToolError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.McpRejected rejected = 3; - */ - value: McpRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; - */ - value: McpPermissionDenied; - case: "permissionDenied"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.McpToolResult.result + */ + result: { + /** + * @generated from field: agent.v1.McpSuccess success = 1; + */ + value: McpSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.McpToolError error = 2; + */ + value: McpToolError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.McpRejected rejected = 3; + */ + value: McpRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; + */ + value: McpPermissionDenied; + case: "permissionDenied"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpToolResult. * Use `create(McpToolResultSchema)` to create a new message. */ -export const McpToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 13); +export const McpToolResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 13); /** * @generated from message agent.v1.McpToolCall */ export type McpToolCall = Message<"agent.v1.McpToolCall"> & { - /** - * @generated from field: agent.v1.McpArgs args = 1; - */ - args?: McpArgs; + /** + * @generated from field: agent.v1.McpArgs args = 1; + */ + args?: McpArgs | undefined; - /** - * @generated from field: agent.v1.McpToolResult result = 2; - */ - result?: McpToolResult; + /** + * @generated from field: agent.v1.McpToolResult result = 2; + */ + result?: McpToolResult | undefined; + + /** + * @generated from field: optional string description = 3; + */ + description?: string | undefined; }; /** * Describes the message agent.v1.McpToolCall. * Use `create(McpToolCallSchema)` to create a new message. */ -export const McpToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 14); +export const McpToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 14); /** * @generated from message agent.v1.SemSearchToolCall */ export type SemSearchToolCall = Message<"agent.v1.SemSearchToolCall"> & { - /** - * @generated from field: agent.v1.SemSearchToolArgs args = 1; - */ - args?: SemSearchToolArgs; + /** + * @generated from field: agent.v1.SemSearchToolArgs args = 1; + */ + args?: SemSearchToolArgs | undefined; - /** - * @generated from field: agent.v1.SemSearchToolResult result = 2; - */ - result?: SemSearchToolResult; + /** + * @generated from field: agent.v1.SemSearchToolResult result = 2; + */ + result?: SemSearchToolResult | undefined; }; /** * Describes the message agent.v1.SemSearchToolCall. * Use `create(SemSearchToolCallSchema)` to create a new message. */ -export const SemSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 15); +export const SemSearchToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 15); /** * @generated from message agent.v1.SemSearchToolArgs */ export type SemSearchToolArgs = Message<"agent.v1.SemSearchToolArgs"> & { - /** - * @generated from field: string query = 1; - */ - query: string; + /** + * @generated from field: string query = 1; + */ + query: string; - /** - * @generated from field: repeated string target_directories = 2; - */ - targetDirectories: string[]; + /** + * @generated from field: repeated string target_directories = 2; + */ + targetDirectories: string[]; - /** - * @generated from field: string explanation = 3; - */ - explanation: string; + /** + * @generated from field: string explanation = 3; + */ + explanation: string; }; /** * Describes the message agent.v1.SemSearchToolArgs. * Use `create(SemSearchToolArgsSchema)` to create a new message. */ -export const SemSearchToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 16); +export const SemSearchToolArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 16); /** * @generated from message agent.v1.SemSearchToolResult */ export type SemSearchToolResult = Message<"agent.v1.SemSearchToolResult"> & { - /** - * @generated from oneof agent.v1.SemSearchToolResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.SemSearchToolSuccess success = 1; - */ - value: SemSearchToolSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.SemSearchToolError error = 2; - */ - value: SemSearchToolError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SemSearchToolResult.result + */ + result: { + /** + * @generated from field: agent.v1.SemSearchToolSuccess success = 1; + */ + value: SemSearchToolSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.SemSearchToolError error = 2; + */ + value: SemSearchToolError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SemSearchToolResult. * Use `create(SemSearchToolResultSchema)` to create a new message. */ -export const SemSearchToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 17); +export const SemSearchToolResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 17); /** * @generated from message agent.v1.SemSearchToolSuccess */ export type SemSearchToolSuccess = Message<"agent.v1.SemSearchToolSuccess"> & { - /** - * @generated from field: string results = 1; - */ - results: string; + /** + * @generated from field: string results = 1; + */ + results: string; - /** - * @generated from field: repeated bytes code_results = 2; - */ - codeResults: Uint8Array[]; + /** + * @generated from field: repeated bytes code_results = 2; + */ + codeResults: Uint8Array[]; }; /** * Describes the message agent.v1.SemSearchToolSuccess. * Use `create(SemSearchToolSuccessSchema)` to create a new message. */ -export const SemSearchToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 18); +export const SemSearchToolSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 18); /** * @generated from message agent.v1.SemSearchToolError */ export type SemSearchToolError = Message<"agent.v1.SemSearchToolError"> & { - /** - * @generated from field: string error_message = 1; - */ - errorMessage: string; + /** + * @generated from field: string error_message = 1; + */ + errorMessage: string; }; /** * Describes the message agent.v1.SemSearchToolError. * Use `create(SemSearchToolErrorSchema)` to create a new message. */ -export const SemSearchToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 19); +export const SemSearchToolErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 19); /** * @generated from message agent.v1.ListMcpResourcesToolCall */ export type ListMcpResourcesToolCall = Message<"agent.v1.ListMcpResourcesToolCall"> & { - /** - * @generated from field: agent.v1.ListMcpResourcesExecArgs args = 1; - */ - args?: ListMcpResourcesExecArgs; + /** + * @generated from field: agent.v1.ListMcpResourcesExecArgs args = 1; + */ + args?: ListMcpResourcesExecArgs | undefined; - /** - * @generated from field: agent.v1.ListMcpResourcesExecResult result = 2; - */ - result?: ListMcpResourcesExecResult; + /** + * @generated from field: agent.v1.ListMcpResourcesExecResult result = 2; + */ + result?: ListMcpResourcesExecResult | undefined; }; /** * Describes the message agent.v1.ListMcpResourcesToolCall. * Use `create(ListMcpResourcesToolCallSchema)` to create a new message. */ -export const ListMcpResourcesToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 20); +export const ListMcpResourcesToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 20); /** * @generated from message agent.v1.ReadMcpResourceToolCall */ export type ReadMcpResourceToolCall = Message<"agent.v1.ReadMcpResourceToolCall"> & { - /** - * @generated from field: agent.v1.ReadMcpResourceExecArgs args = 1; - */ - args?: ReadMcpResourceExecArgs; + /** + * @generated from field: agent.v1.ReadMcpResourceExecArgs args = 1; + */ + args?: ReadMcpResourceExecArgs | undefined; - /** - * @generated from field: agent.v1.ReadMcpResourceExecResult result = 2; - */ - result?: ReadMcpResourceExecResult; + /** + * @generated from field: agent.v1.ReadMcpResourceExecResult result = 2; + */ + result?: ReadMcpResourceExecResult | undefined; }; /** * Describes the message agent.v1.ReadMcpResourceToolCall. * Use `create(ReadMcpResourceToolCallSchema)` to create a new message. */ -export const ReadMcpResourceToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 21); +export const ReadMcpResourceToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 21); /** * @generated from message agent.v1.FetchToolCall */ export type FetchToolCall = Message<"agent.v1.FetchToolCall"> & { - /** - * @generated from field: agent.v1.FetchArgs args = 1; - */ - args?: FetchArgs; + /** + * @generated from field: agent.v1.FetchArgs args = 1; + */ + args?: FetchArgs | undefined; - /** - * @generated from field: agent.v1.FetchResult result = 2; - */ - result?: FetchResult; + /** + * @generated from field: agent.v1.FetchResult result = 2; + */ + result?: FetchResult | undefined; }; /** * Describes the message agent.v1.FetchToolCall. * Use `create(FetchToolCallSchema)` to create a new message. */ -export const FetchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 22); +export const FetchToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 22); /** * @generated from message agent.v1.RecordScreenToolCall */ export type RecordScreenToolCall = Message<"agent.v1.RecordScreenToolCall"> & { - /** - * @generated from field: agent.v1.RecordScreenArgs args = 1; - */ - args?: RecordScreenArgs; + /** + * @generated from field: agent.v1.RecordScreenArgs args = 1; + */ + args?: RecordScreenArgs | undefined; - /** - * @generated from field: agent.v1.RecordScreenResult result = 2; - */ - result?: RecordScreenResult; + /** + * @generated from field: agent.v1.RecordScreenResult result = 2; + */ + result?: RecordScreenResult | undefined; }; /** * Describes the message agent.v1.RecordScreenToolCall. * Use `create(RecordScreenToolCallSchema)` to create a new message. */ -export const RecordScreenToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 23); +export const RecordScreenToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 23); /** * @generated from message agent.v1.WriteShellStdinToolCall */ export type WriteShellStdinToolCall = Message<"agent.v1.WriteShellStdinToolCall"> & { - /** - * @generated from field: agent.v1.WriteShellStdinArgs args = 1; - */ - args?: WriteShellStdinArgs; + /** + * @generated from field: agent.v1.WriteShellStdinArgs args = 1; + */ + args?: WriteShellStdinArgs | undefined; - /** - * @generated from field: agent.v1.WriteShellStdinResult result = 2; - */ - result?: WriteShellStdinResult; + /** + * @generated from field: agent.v1.WriteShellStdinResult result = 2; + */ + result?: WriteShellStdinResult | undefined; }; /** * Describes the message agent.v1.WriteShellStdinToolCall. * Use `create(WriteShellStdinToolCallSchema)` to create a new message. */ -export const WriteShellStdinToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 24); +export const WriteShellStdinToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 24); /** * @generated from message agent.v1.ReflectArgs */ export type ReflectArgs = Message<"agent.v1.ReflectArgs"> & { - /** - * @generated from field: string unexpected_action_outcomes = 1; - */ - unexpectedActionOutcomes: string; + /** + * @generated from field: string unexpected_action_outcomes = 1; + */ + unexpectedActionOutcomes: string; - /** - * @generated from field: string relevant_instructions = 2; - */ - relevantInstructions: string; + /** + * @generated from field: string relevant_instructions = 2; + */ + relevantInstructions: string; - /** - * @generated from field: string scenario_analysis = 3; - */ - scenarioAnalysis: string; + /** + * @generated from field: string scenario_analysis = 3; + */ + scenarioAnalysis: string; - /** - * @generated from field: string critical_synthesis = 4; - */ - criticalSynthesis: string; + /** + * @generated from field: string critical_synthesis = 4; + */ + criticalSynthesis: string; - /** - * @generated from field: string next_steps = 5; - */ - nextSteps: string; + /** + * @generated from field: string next_steps = 5; + */ + nextSteps: string; - /** - * @generated from field: string tool_call_id = 6; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 6; + */ + toolCallId: string; }; /** * Describes the message agent.v1.ReflectArgs. * Use `create(ReflectArgsSchema)` to create a new message. */ -export const ReflectArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 25); +export const ReflectArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 25); /** * @generated from message agent.v1.ReflectResult */ export type ReflectResult = Message<"agent.v1.ReflectResult"> & { - /** - * @generated from oneof agent.v1.ReflectResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReflectSuccess success = 1; - */ - value: ReflectSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReflectError error = 2; - */ - value: ReflectError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReflectResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReflectSuccess success = 1; + */ + value: ReflectSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReflectError error = 2; + */ + value: ReflectError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReflectResult. * Use `create(ReflectResultSchema)` to create a new message. */ -export const ReflectResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 26); +export const ReflectResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 26); /** * @generated from message agent.v1.ReflectSuccess */ -export type ReflectSuccess = Message<"agent.v1.ReflectSuccess"> & {}; +export type ReflectSuccess = Message<"agent.v1.ReflectSuccess"> & { +}; /** * Describes the message agent.v1.ReflectSuccess. * Use `create(ReflectSuccessSchema)` to create a new message. */ -export const ReflectSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 27); +export const ReflectSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 27); /** * @generated from message agent.v1.ReflectError */ export type ReflectError = Message<"agent.v1.ReflectError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.ReflectError. * Use `create(ReflectErrorSchema)` to create a new message. */ -export const ReflectErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 28); +export const ReflectErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 28); /** * @generated from message agent.v1.ReflectToolCall */ export type ReflectToolCall = Message<"agent.v1.ReflectToolCall"> & { - /** - * @generated from field: agent.v1.ReflectArgs args = 1; - */ - args?: ReflectArgs; + /** + * @generated from field: agent.v1.ReflectArgs args = 1; + */ + args?: ReflectArgs | undefined; - /** - * @generated from field: agent.v1.ReflectResult result = 2; - */ - result?: ReflectResult; + /** + * @generated from field: agent.v1.ReflectResult result = 2; + */ + result?: ReflectResult | undefined; }; /** * Describes the message agent.v1.ReflectToolCall. * Use `create(ReflectToolCallSchema)` to create a new message. */ -export const ReflectToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 29); +export const ReflectToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 29); /** * @generated from message agent.v1.StartGrindExecutionArgs */ export type StartGrindExecutionArgs = Message<"agent.v1.StartGrindExecutionArgs"> & { - /** - * Optional explanation for why the agent is requesting to begin executing. - * - * @generated from field: optional string explanation = 1; - */ - explanation?: string; + /** + * Optional explanation for why the agent is requesting to begin executing. + * + * @generated from field: optional string explanation = 1; + */ + explanation?: string | undefined; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.StartGrindExecutionArgs. * Use `create(StartGrindExecutionArgsSchema)` to create a new message. */ -export const StartGrindExecutionArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 30); +export const StartGrindExecutionArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 30); /** * @generated from message agent.v1.StartGrindExecutionResult */ export type StartGrindExecutionResult = Message<"agent.v1.StartGrindExecutionResult"> & { - /** - * @generated from oneof agent.v1.StartGrindExecutionResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.StartGrindExecutionSuccess success = 1; - */ - value: StartGrindExecutionSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.StartGrindExecutionError error = 2; - */ - value: StartGrindExecutionError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.StartGrindExecutionResult.result + */ + result: { + /** + * @generated from field: agent.v1.StartGrindExecutionSuccess success = 1; + */ + value: StartGrindExecutionSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.StartGrindExecutionError error = 2; + */ + value: StartGrindExecutionError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.StartGrindExecutionResult. * Use `create(StartGrindExecutionResultSchema)` to create a new message. */ -export const StartGrindExecutionResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 31); +export const StartGrindExecutionResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 31); /** * @generated from message agent.v1.StartGrindExecutionSuccess */ -export type StartGrindExecutionSuccess = Message<"agent.v1.StartGrindExecutionSuccess"> & {}; +export type StartGrindExecutionSuccess = Message<"agent.v1.StartGrindExecutionSuccess"> & { +}; /** * Describes the message agent.v1.StartGrindExecutionSuccess. * Use `create(StartGrindExecutionSuccessSchema)` to create a new message. */ -export const StartGrindExecutionSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 32); +export const StartGrindExecutionSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 32); /** * @generated from message agent.v1.StartGrindExecutionError */ export type StartGrindExecutionError = Message<"agent.v1.StartGrindExecutionError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.StartGrindExecutionError. * Use `create(StartGrindExecutionErrorSchema)` to create a new message. */ -export const StartGrindExecutionErrorSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 33); +export const StartGrindExecutionErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 33); /** * @generated from message agent.v1.StartGrindExecutionToolCall */ export type StartGrindExecutionToolCall = Message<"agent.v1.StartGrindExecutionToolCall"> & { - /** - * @generated from field: agent.v1.StartGrindExecutionArgs args = 1; - */ - args?: StartGrindExecutionArgs; + /** + * @generated from field: agent.v1.StartGrindExecutionArgs args = 1; + */ + args?: StartGrindExecutionArgs | undefined; - /** - * @generated from field: agent.v1.StartGrindExecutionResult result = 2; - */ - result?: StartGrindExecutionResult; + /** + * @generated from field: agent.v1.StartGrindExecutionResult result = 2; + */ + result?: StartGrindExecutionResult | undefined; }; /** * Describes the message agent.v1.StartGrindExecutionToolCall. * Use `create(StartGrindExecutionToolCallSchema)` to create a new message. */ -export const StartGrindExecutionToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 34); +export const StartGrindExecutionToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 34); /** * @generated from message agent.v1.StartGrindPlanningArgs */ export type StartGrindPlanningArgs = Message<"agent.v1.StartGrindPlanningArgs"> & { - /** - * Optional explanation for why the agent is requesting to return to planning. - * - * @generated from field: optional string explanation = 1; - */ - explanation?: string; + /** + * Optional explanation for why the agent is requesting to return to planning. + * + * @generated from field: optional string explanation = 1; + */ + explanation?: string | undefined; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.StartGrindPlanningArgs. * Use `create(StartGrindPlanningArgsSchema)` to create a new message. */ -export const StartGrindPlanningArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 35); +export const StartGrindPlanningArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 35); /** * @generated from message agent.v1.StartGrindPlanningResult */ export type StartGrindPlanningResult = Message<"agent.v1.StartGrindPlanningResult"> & { - /** - * @generated from oneof agent.v1.StartGrindPlanningResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.StartGrindPlanningSuccess success = 1; - */ - value: StartGrindPlanningSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.StartGrindPlanningError error = 2; - */ - value: StartGrindPlanningError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.StartGrindPlanningResult.result + */ + result: { + /** + * @generated from field: agent.v1.StartGrindPlanningSuccess success = 1; + */ + value: StartGrindPlanningSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.StartGrindPlanningError error = 2; + */ + value: StartGrindPlanningError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.StartGrindPlanningResult. * Use `create(StartGrindPlanningResultSchema)` to create a new message. */ -export const StartGrindPlanningResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 36); +export const StartGrindPlanningResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 36); /** * @generated from message agent.v1.StartGrindPlanningSuccess */ -export type StartGrindPlanningSuccess = Message<"agent.v1.StartGrindPlanningSuccess"> & {}; +export type StartGrindPlanningSuccess = Message<"agent.v1.StartGrindPlanningSuccess"> & { +}; /** * Describes the message agent.v1.StartGrindPlanningSuccess. * Use `create(StartGrindPlanningSuccessSchema)` to create a new message. */ -export const StartGrindPlanningSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 37); +export const StartGrindPlanningSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 37); /** * @generated from message agent.v1.StartGrindPlanningError */ export type StartGrindPlanningError = Message<"agent.v1.StartGrindPlanningError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.StartGrindPlanningError. * Use `create(StartGrindPlanningErrorSchema)` to create a new message. */ -export const StartGrindPlanningErrorSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 38); +export const StartGrindPlanningErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 38); /** * @generated from message agent.v1.StartGrindPlanningToolCall */ export type StartGrindPlanningToolCall = Message<"agent.v1.StartGrindPlanningToolCall"> & { - /** - * @generated from field: agent.v1.StartGrindPlanningArgs args = 1; - */ - args?: StartGrindPlanningArgs; + /** + * @generated from field: agent.v1.StartGrindPlanningArgs args = 1; + */ + args?: StartGrindPlanningArgs | undefined; - /** - * @generated from field: agent.v1.StartGrindPlanningResult result = 2; - */ - result?: StartGrindPlanningResult; + /** + * @generated from field: agent.v1.StartGrindPlanningResult result = 2; + */ + result?: StartGrindPlanningResult | undefined; }; /** * Describes the message agent.v1.StartGrindPlanningToolCall. * Use `create(StartGrindPlanningToolCallSchema)` to create a new message. */ -export const StartGrindPlanningToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 39); +export const StartGrindPlanningToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 39); /** * var AgentMode; (function (AgentMode) { AgentMode[AgentMode["UNSPECIFIED"] = 0] = "UNSPECIFIED"; AgentMode[AgentMode["AGENT"] = 1] = "AGENT"; AgentMode[AgentMode["ASK"] = 2] = "ASK"; AgentMode[AgentMode["PLAN"] = 3] = "PLAN"; AgentMode[AgentMode["DEBUG"] = 4] = "DEBUG"; AgentMode[AgentMode["TRIAGE"] = 5] = "TRIAGE"; AgentMode[AgentMode["PROJECT"] = 6] = "PROJECT"; })(AgentMode || (AgentMode = {})); // Retrieve enum metadata with: proto3.getEnumType(AgentMode) proto3/* int32 *\/.C.util.setEnumType(AgentMode, "agent.v1.AgentMode", [ { no: 0, name: "AGENT_MODE_UNSPECIFIED" }, { no: 1, name: "AGENT_MODE_AGENT" }, { no: 2, name: "AGENT_MODE_ASK" }, { no: 3, name: "AGENT_MODE_PLAN" }, { no: 4, name: "AGENT_MODE_DEBUG" }, { no: 5, name: "AGENT_MODE_TRIAGE" }, { no: 6, name: "AGENT_MODE_PROJECT" }, ]); @@ -984,152 +985,155 @@ export const StartGrindPlanningToolCallSchema: GenMessage & { - /** - * @generated from field: string description = 1; - */ - description: string; + /** + * @generated from field: string description = 1; + */ + description: string; - /** - * @generated from field: string prompt = 2; - */ - prompt: string; + /** + * @generated from field: string prompt = 2; + */ + prompt: string; - /** - * @generated from field: agent.v1.SubagentType subagent_type = 3; - */ - subagentType?: SubagentType; + /** + * @generated from field: agent.v1.SubagentType subagent_type = 3; + */ + subagentType?: SubagentType | undefined; - /** - * @generated from field: optional string model = 4; - */ - model?: string; + /** + * @generated from field: optional string model = 4; + */ + model?: string | undefined; - /** - * @generated from field: optional string resume = 5; - */ - resume?: string; + /** + * @generated from field: optional string resume = 5; + */ + resume?: string | undefined; }; /** * Describes the message agent.v1.TaskArgs. * Use `create(TaskArgsSchema)` to create a new message. */ -export const TaskArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 40); +export const TaskArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 40); /** * @generated from message agent.v1.TaskSuccess */ export type TaskSuccess = Message<"agent.v1.TaskSuccess"> & { - /** - * @generated from field: repeated agent.v1.ConversationStep conversation_steps = 1; - */ - conversationSteps: ConversationStep[]; + /** + * @generated from field: repeated agent.v1.ConversationStep conversation_steps = 1; + */ + conversationSteps: ConversationStep[]; - /** - * @generated from field: optional string agent_id = 2; - */ - agentId?: string; + /** + * @generated from field: optional string agent_id = 2; + */ + agentId?: string | undefined; - /** - * @generated from field: bool is_background = 3; - */ - isBackground: boolean; + /** + * @generated from field: bool is_background = 3; + */ + isBackground: boolean; - /** - * @generated from field: optional uint64 duration_ms = 4; - */ - durationMs?: bigint; + /** + * @generated from field: optional uint64 duration_ms = 4; + */ + durationMs?: bigint | undefined; }; /** * Describes the message agent.v1.TaskSuccess. * Use `create(TaskSuccessSchema)` to create a new message. */ -export const TaskSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 41); +export const TaskSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 41); /** * @generated from message agent.v1.TaskError */ export type TaskError = Message<"agent.v1.TaskError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.TaskError. * Use `create(TaskErrorSchema)` to create a new message. */ -export const TaskErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 42); +export const TaskErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 42); /** * @generated from message agent.v1.TaskResult */ export type TaskResult = Message<"agent.v1.TaskResult"> & { - /** - * @generated from oneof agent.v1.TaskResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.TaskSuccess success = 1; - */ - value: TaskSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.TaskError error = 2; - */ - value: TaskError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.TaskResult.result + */ + result: { + /** + * @generated from field: agent.v1.TaskSuccess success = 1; + */ + value: TaskSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.TaskError error = 2; + */ + value: TaskError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.TaskResult. * Use `create(TaskResultSchema)` to create a new message. */ -export const TaskResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 43); +export const TaskResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 43); /** * @generated from message agent.v1.TaskToolCall */ export type TaskToolCall = Message<"agent.v1.TaskToolCall"> & { - /** - * @generated from field: agent.v1.TaskArgs args = 1; - */ - args?: TaskArgs; + /** + * @generated from field: agent.v1.TaskArgs args = 1; + */ + args?: TaskArgs | undefined; - /** - * @generated from field: agent.v1.TaskResult result = 2; - */ - result?: TaskResult; + /** + * @generated from field: agent.v1.TaskResult result = 2; + */ + result?: TaskResult | undefined; }; /** * Describes the message agent.v1.TaskToolCall. * Use `create(TaskToolCallSchema)` to create a new message. */ -export const TaskToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 44); +export const TaskToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 44); /** * @generated from message agent.v1.TaskToolCallDelta */ export type TaskToolCallDelta = Message<"agent.v1.TaskToolCallDelta"> & { - /** - * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; - */ - interactionUpdate?: InteractionUpdate; + /** + * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; + */ + interactionUpdate?: InteractionUpdate | undefined; }; /** * Describes the message agent.v1.TaskToolCallDelta. * Use `create(TaskToolCallDeltaSchema)` to create a new message. */ -export const TaskToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 45); +export const TaskToolCallDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 45); /** * Tool messages (from tool.proto) @@ -1137,317 +1141,282 @@ export const TaskToolCallDeltaSchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.ToolCall */ export type ToolCall = Message<"agent.v1.ToolCall"> & { - /** - * @generated from oneof agent.v1.ToolCall.tool - */ - tool: - | { - /** - * @generated from field: agent.v1.ShellToolCall shell_tool_call = 1; - */ - value: ShellToolCall; - case: "shellToolCall"; - } - | { - /** - * @generated from field: agent.v1.DeleteToolCall delete_tool_call = 3; - */ - value: DeleteToolCall; - case: "deleteToolCall"; - } - | { - /** - * @generated from field: agent.v1.GlobToolCall glob_tool_call = 4; - */ - value: GlobToolCall; - case: "globToolCall"; - } - | { - /** - * @generated from field: agent.v1.GrepToolCall grep_tool_call = 5; - */ - value: GrepToolCall; - case: "grepToolCall"; - } - | { - /** - * @generated from field: agent.v1.ReadToolCall read_tool_call = 8; - */ - value: ReadToolCall; - case: "readToolCall"; - } - | { - /** - * @generated from field: agent.v1.UpdateTodosToolCall update_todos_tool_call = 9; - */ - value: UpdateTodosToolCall; - case: "updateTodosToolCall"; - } - | { - /** - * @generated from field: agent.v1.ReadTodosToolCall read_todos_tool_call = 10; - */ - value: ReadTodosToolCall; - case: "readTodosToolCall"; - } - | { - /** - * @generated from field: agent.v1.EditToolCall edit_tool_call = 12; - */ - value: EditToolCall; - case: "editToolCall"; - } - | { - /** - * @generated from field: agent.v1.LsToolCall ls_tool_call = 13; - */ - value: LsToolCall; - case: "lsToolCall"; - } - | { - /** - * @generated from field: agent.v1.ReadLintsToolCall read_lints_tool_call = 14; - */ - value: ReadLintsToolCall; - case: "readLintsToolCall"; - } - | { - /** - * @generated from field: agent.v1.McpToolCall mcp_tool_call = 15; - */ - value: McpToolCall; - case: "mcpToolCall"; - } - | { - /** - * @generated from field: agent.v1.SemSearchToolCall sem_search_tool_call = 16; - */ - value: SemSearchToolCall; - case: "semSearchToolCall"; - } - | { - /** - * @generated from field: agent.v1.CreatePlanToolCall create_plan_tool_call = 17; - */ - value: CreatePlanToolCall; - case: "createPlanToolCall"; - } - | { - /** - * @generated from field: agent.v1.WebSearchToolCall web_search_tool_call = 18; - */ - value: WebSearchToolCall; - case: "webSearchToolCall"; - } - | { - /** - * @generated from field: agent.v1.TaskToolCall task_tool_call = 19; - */ - value: TaskToolCall; - case: "taskToolCall"; - } - | { - /** - * @generated from field: agent.v1.ListMcpResourcesToolCall list_mcp_resources_tool_call = 20; - */ - value: ListMcpResourcesToolCall; - case: "listMcpResourcesToolCall"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceToolCall read_mcp_resource_tool_call = 21; - */ - value: ReadMcpResourceToolCall; - case: "readMcpResourceToolCall"; - } - | { - /** - * @generated from field: agent.v1.ApplyAgentDiffToolCall apply_agent_diff_tool_call = 22; - */ - value: ApplyAgentDiffToolCall; - case: "applyAgentDiffToolCall"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionToolCall ask_question_tool_call = 23; - */ - value: AskQuestionToolCall; - case: "askQuestionToolCall"; - } - | { - /** - * @generated from field: agent.v1.FetchToolCall fetch_tool_call = 24; - */ - value: FetchToolCall; - case: "fetchToolCall"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeToolCall switch_mode_tool_call = 25; - */ - value: SwitchModeToolCall; - case: "switchModeToolCall"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchToolCall exa_search_tool_call = 26; - */ - value: ExaSearchToolCall; - case: "exaSearchToolCall"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchToolCall exa_fetch_tool_call = 27; - */ - value: ExaFetchToolCall; - case: "exaFetchToolCall"; - } - | { - /** - * @generated from field: agent.v1.GenerateImageToolCall generate_image_tool_call = 28; - */ - value: GenerateImageToolCall; - case: "generateImageToolCall"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenToolCall record_screen_tool_call = 29; - */ - value: RecordScreenToolCall; - case: "recordScreenToolCall"; - } - | { - /** - * @generated from field: agent.v1.ComputerUseToolCall computer_use_tool_call = 30; - */ - value: ComputerUseToolCall; - case: "computerUseToolCall"; - } - | { - /** - * @generated from field: agent.v1.WriteShellStdinToolCall write_shell_stdin_tool_call = 31; - */ - value: WriteShellStdinToolCall; - case: "writeShellStdinToolCall"; - } - | { - /** - * @generated from field: agent.v1.ReflectToolCall reflect_tool_call = 32; - */ - value: ReflectToolCall; - case: "reflectToolCall"; - } - | { - /** - * @generated from field: agent.v1.SetupVmEnvironmentToolCall setup_vm_environment_tool_call = 33; - */ - value: SetupVmEnvironmentToolCall; - case: "setupVmEnvironmentToolCall"; - } - | { - /** - * @generated from field: agent.v1.TruncatedToolCall truncated_tool_call = 34; - */ - value: TruncatedToolCall; - case: "truncatedToolCall"; - } - | { - /** - * @generated from field: agent.v1.StartGrindExecutionToolCall start_grind_execution_tool_call = 35; - */ - value: StartGrindExecutionToolCall; - case: "startGrindExecutionToolCall"; - } - | { - /** - * @generated from field: agent.v1.StartGrindPlanningToolCall start_grind_planning_tool_call = 36; - */ - value: StartGrindPlanningToolCall; - case: "startGrindPlanningToolCall"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ToolCall.tool + */ + tool: { + /** + * @generated from field: agent.v1.ShellToolCall shell_tool_call = 1; + */ + value: ShellToolCall; + case: "shellToolCall"; + } | { + /** + * @generated from field: agent.v1.DeleteToolCall delete_tool_call = 3; + */ + value: DeleteToolCall; + case: "deleteToolCall"; + } | { + /** + * @generated from field: agent.v1.GlobToolCall glob_tool_call = 4; + */ + value: GlobToolCall; + case: "globToolCall"; + } | { + /** + * @generated from field: agent.v1.GrepToolCall grep_tool_call = 5; + */ + value: GrepToolCall; + case: "grepToolCall"; + } | { + /** + * @generated from field: agent.v1.ReadToolCall read_tool_call = 8; + */ + value: ReadToolCall; + case: "readToolCall"; + } | { + /** + * @generated from field: agent.v1.UpdateTodosToolCall update_todos_tool_call = 9; + */ + value: UpdateTodosToolCall; + case: "updateTodosToolCall"; + } | { + /** + * @generated from field: agent.v1.ReadTodosToolCall read_todos_tool_call = 10; + */ + value: ReadTodosToolCall; + case: "readTodosToolCall"; + } | { + /** + * @generated from field: agent.v1.EditToolCall edit_tool_call = 12; + */ + value: EditToolCall; + case: "editToolCall"; + } | { + /** + * @generated from field: agent.v1.LsToolCall ls_tool_call = 13; + */ + value: LsToolCall; + case: "lsToolCall"; + } | { + /** + * @generated from field: agent.v1.ReadLintsToolCall read_lints_tool_call = 14; + */ + value: ReadLintsToolCall; + case: "readLintsToolCall"; + } | { + /** + * @generated from field: agent.v1.McpToolCall mcp_tool_call = 15; + */ + value: McpToolCall; + case: "mcpToolCall"; + } | { + /** + * @generated from field: agent.v1.SemSearchToolCall sem_search_tool_call = 16; + */ + value: SemSearchToolCall; + case: "semSearchToolCall"; + } | { + /** + * @generated from field: agent.v1.CreatePlanToolCall create_plan_tool_call = 17; + */ + value: CreatePlanToolCall; + case: "createPlanToolCall"; + } | { + /** + * @generated from field: agent.v1.WebSearchToolCall web_search_tool_call = 18; + */ + value: WebSearchToolCall; + case: "webSearchToolCall"; + } | { + /** + * @generated from field: agent.v1.TaskToolCall task_tool_call = 19; + */ + value: TaskToolCall; + case: "taskToolCall"; + } | { + /** + * @generated from field: agent.v1.ListMcpResourcesToolCall list_mcp_resources_tool_call = 20; + */ + value: ListMcpResourcesToolCall; + case: "listMcpResourcesToolCall"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceToolCall read_mcp_resource_tool_call = 21; + */ + value: ReadMcpResourceToolCall; + case: "readMcpResourceToolCall"; + } | { + /** + * @generated from field: agent.v1.ApplyAgentDiffToolCall apply_agent_diff_tool_call = 22; + */ + value: ApplyAgentDiffToolCall; + case: "applyAgentDiffToolCall"; + } | { + /** + * @generated from field: agent.v1.AskQuestionToolCall ask_question_tool_call = 23; + */ + value: AskQuestionToolCall; + case: "askQuestionToolCall"; + } | { + /** + * @generated from field: agent.v1.FetchToolCall fetch_tool_call = 24; + */ + value: FetchToolCall; + case: "fetchToolCall"; + } | { + /** + * @generated from field: agent.v1.SwitchModeToolCall switch_mode_tool_call = 25; + */ + value: SwitchModeToolCall; + case: "switchModeToolCall"; + } | { + /** + * @generated from field: agent.v1.ExaSearchToolCall exa_search_tool_call = 26; + */ + value: ExaSearchToolCall; + case: "exaSearchToolCall"; + } | { + /** + * @generated from field: agent.v1.ExaFetchToolCall exa_fetch_tool_call = 27; + */ + value: ExaFetchToolCall; + case: "exaFetchToolCall"; + } | { + /** + * @generated from field: agent.v1.GenerateImageToolCall generate_image_tool_call = 28; + */ + value: GenerateImageToolCall; + case: "generateImageToolCall"; + } | { + /** + * @generated from field: agent.v1.RecordScreenToolCall record_screen_tool_call = 29; + */ + value: RecordScreenToolCall; + case: "recordScreenToolCall"; + } | { + /** + * @generated from field: agent.v1.ComputerUseToolCall computer_use_tool_call = 30; + */ + value: ComputerUseToolCall; + case: "computerUseToolCall"; + } | { + /** + * @generated from field: agent.v1.WriteShellStdinToolCall write_shell_stdin_tool_call = 31; + */ + value: WriteShellStdinToolCall; + case: "writeShellStdinToolCall"; + } | { + /** + * @generated from field: agent.v1.ReflectToolCall reflect_tool_call = 32; + */ + value: ReflectToolCall; + case: "reflectToolCall"; + } | { + /** + * @generated from field: agent.v1.SetupVmEnvironmentToolCall setup_vm_environment_tool_call = 33; + */ + value: SetupVmEnvironmentToolCall; + case: "setupVmEnvironmentToolCall"; + } | { + /** + * @generated from field: agent.v1.TruncatedToolCall truncated_tool_call = 34; + */ + value: TruncatedToolCall; + case: "truncatedToolCall"; + } | { + /** + * @generated from field: agent.v1.StartGrindExecutionToolCall start_grind_execution_tool_call = 35; + */ + value: StartGrindExecutionToolCall; + case: "startGrindExecutionToolCall"; + } | { + /** + * @generated from field: agent.v1.StartGrindPlanningToolCall start_grind_planning_tool_call = 36; + */ + value: StartGrindPlanningToolCall; + case: "startGrindPlanningToolCall"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ToolCall. * Use `create(ToolCallSchema)` to create a new message. */ -export const ToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 46); +export const ToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 46); /** * @generated from message agent.v1.TruncatedToolCallArgs */ -export type TruncatedToolCallArgs = Message<"agent.v1.TruncatedToolCallArgs"> & {}; +export type TruncatedToolCallArgs = Message<"agent.v1.TruncatedToolCallArgs"> & { +}; /** * Describes the message agent.v1.TruncatedToolCallArgs. * Use `create(TruncatedToolCallArgsSchema)` to create a new message. */ -export const TruncatedToolCallArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 47); +export const TruncatedToolCallArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 47); /** * @generated from message agent.v1.TruncatedToolCallSuccess */ -export type TruncatedToolCallSuccess = Message<"agent.v1.TruncatedToolCallSuccess"> & {}; +export type TruncatedToolCallSuccess = Message<"agent.v1.TruncatedToolCallSuccess"> & { +}; /** * Describes the message agent.v1.TruncatedToolCallSuccess. * Use `create(TruncatedToolCallSuccessSchema)` to create a new message. */ -export const TruncatedToolCallSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 48); +export const TruncatedToolCallSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 48); /** * @generated from message agent.v1.TruncatedToolCallError */ export type TruncatedToolCallError = Message<"agent.v1.TruncatedToolCallError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.TruncatedToolCallError. * Use `create(TruncatedToolCallErrorSchema)` to create a new message. */ -export const TruncatedToolCallErrorSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 49); +export const TruncatedToolCallErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 49); /** * @generated from message agent.v1.TruncatedToolCallResult */ export type TruncatedToolCallResult = Message<"agent.v1.TruncatedToolCallResult"> & { - /** - * @generated from oneof agent.v1.TruncatedToolCallResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.TruncatedToolCallSuccess success = 1; - */ - value: TruncatedToolCallSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.TruncatedToolCallError error = 2; - */ - value: TruncatedToolCallError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.TruncatedToolCallResult.result + */ + result: { + /** + * @generated from field: agent.v1.TruncatedToolCallSuccess success = 1; + */ + value: TruncatedToolCallSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.TruncatedToolCallError error = 2; + */ + value: TruncatedToolCallError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.TruncatedToolCallResult. * Use `create(TruncatedToolCallResultSchema)` to create a new message. */ -export const TruncatedToolCallResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 50); +export const TruncatedToolCallResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 50); /** * Placeholder for tool calls that were truncated due to size limits. @@ -1455,1444 +1424,1441 @@ export const TruncatedToolCallResultSchema: GenMessage * @generated from message agent.v1.TruncatedToolCall */ export type TruncatedToolCall = Message<"agent.v1.TruncatedToolCall"> & { - /** - * @generated from field: bytes original_step_blob_id = 1; - */ - originalStepBlobId: Uint8Array; + /** + * @generated from field: bytes original_step_blob_id = 1; + */ + originalStepBlobId: Uint8Array; - /** - * unused, just matches the discriminated union for other tool calls - * - * @generated from field: agent.v1.TruncatedToolCallArgs args = 2; - */ - args?: TruncatedToolCallArgs; + /** + * unused, just matches the discriminated union for other tool calls + * + * @generated from field: agent.v1.TruncatedToolCallArgs args = 2; + */ + args?: TruncatedToolCallArgs | undefined; - /** - * @generated from field: agent.v1.TruncatedToolCallResult result = 3; - */ - result?: TruncatedToolCallResult; + /** + * @generated from field: agent.v1.TruncatedToolCallResult result = 3; + */ + result?: TruncatedToolCallResult | undefined; }; /** * Describes the message agent.v1.TruncatedToolCall. * Use `create(TruncatedToolCallSchema)` to create a new message. */ -export const TruncatedToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 51); +export const TruncatedToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 51); /** * @generated from message agent.v1.ToolCallDelta */ export type ToolCallDelta = Message<"agent.v1.ToolCallDelta"> & { - /** - * @generated from oneof agent.v1.ToolCallDelta.delta - */ - delta: - | { - /** - * @generated from field: agent.v1.ShellToolCallDelta shell_tool_call_delta = 1; - */ - value: ShellToolCallDelta; - case: "shellToolCallDelta"; - } - | { - /** - * @generated from field: agent.v1.TaskToolCallDelta task_tool_call_delta = 2; - */ - value: TaskToolCallDelta; - case: "taskToolCallDelta"; - } - | { - /** - * @generated from field: agent.v1.EditToolCallDelta edit_tool_call_delta = 3; - */ - value: EditToolCallDelta; - case: "editToolCallDelta"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ToolCallDelta.delta + */ + delta: { + /** + * @generated from field: agent.v1.ShellToolCallDelta shell_tool_call_delta = 1; + */ + value: ShellToolCallDelta; + case: "shellToolCallDelta"; + } | { + /** + * @generated from field: agent.v1.TaskToolCallDelta task_tool_call_delta = 2; + */ + value: TaskToolCallDelta; + case: "taskToolCallDelta"; + } | { + /** + * @generated from field: agent.v1.EditToolCallDelta edit_tool_call_delta = 3; + */ + value: EditToolCallDelta; + case: "editToolCallDelta"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ToolCallDelta. * Use `create(ToolCallDeltaSchema)` to create a new message. */ -export const ToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 52); +export const ToolCallDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 52); /** * @generated from message agent.v1.ConversationStep */ export type ConversationStep = Message<"agent.v1.ConversationStep"> & { - /** - * @generated from oneof agent.v1.ConversationStep.message - */ - message: - | { - /** - * @generated from field: agent.v1.AssistantMessage assistant_message = 1; - */ - value: AssistantMessage; - case: "assistantMessage"; - } - | { - /** - * @generated from field: agent.v1.ToolCall tool_call = 2; - */ - value: ToolCall; - case: "toolCall"; - } - | { - /** - * @generated from field: agent.v1.ThinkingMessage thinking_message = 3; - */ - value: ThinkingMessage; - case: "thinkingMessage"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ConversationStep.message + */ + message: { + /** + * @generated from field: agent.v1.AssistantMessage assistant_message = 1; + */ + value: AssistantMessage; + case: "assistantMessage"; + } | { + /** + * @generated from field: agent.v1.ToolCall tool_call = 2; + */ + value: ToolCall; + case: "toolCall"; + } | { + /** + * @generated from field: agent.v1.ThinkingMessage thinking_message = 3; + */ + value: ThinkingMessage; + case: "thinkingMessage"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationStep. * Use `create(ConversationStepSchema)` to create a new message. */ -export const ConversationStepSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 53); +export const ConversationStepSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 53); /** * @generated from message agent.v1.ConversationAction */ export type ConversationAction = Message<"agent.v1.ConversationAction"> & { - /** - * @generated from oneof agent.v1.ConversationAction.action - */ - action: - | { - /** - * @generated from field: agent.v1.UserMessageAction user_message_action = 1; - */ - value: UserMessageAction; - case: "userMessageAction"; - } - | { - /** - * @generated from field: agent.v1.ResumeAction resume_action = 2; - */ - value: ResumeAction; - case: "resumeAction"; - } - | { - /** - * @generated from field: agent.v1.CancelAction cancel_action = 3; - */ - value: CancelAction; - case: "cancelAction"; - } - | { - /** - * @generated from field: agent.v1.SummarizeAction summarize_action = 4; - */ - value: SummarizeAction; - case: "summarizeAction"; - } - | { - /** - * @generated from field: agent.v1.ShellCommandAction shell_command_action = 5; - */ - value: ShellCommandAction; - case: "shellCommandAction"; - } - | { - /** - * @generated from field: agent.v1.StartPlanAction start_plan_action = 6; - */ - value: StartPlanAction; - case: "startPlanAction"; - } - | { - /** - * @generated from field: agent.v1.ExecutePlanAction execute_plan_action = 7; - */ - value: ExecutePlanAction; - case: "executePlanAction"; - } - | { - /** - * @generated from field: agent.v1.AsyncAskQuestionCompletionAction async_ask_question_completion_action = 8; - */ - value: AsyncAskQuestionCompletionAction; - case: "asyncAskQuestionCompletionAction"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ConversationAction.action + */ + action: { + /** + * @generated from field: agent.v1.UserMessageAction user_message_action = 1; + */ + value: UserMessageAction; + case: "userMessageAction"; + } | { + /** + * @generated from field: agent.v1.ResumeAction resume_action = 2; + */ + value: ResumeAction; + case: "resumeAction"; + } | { + /** + * @generated from field: agent.v1.CancelAction cancel_action = 3; + */ + value: CancelAction; + case: "cancelAction"; + } | { + /** + * @generated from field: agent.v1.SummarizeAction summarize_action = 4; + */ + value: SummarizeAction; + case: "summarizeAction"; + } | { + /** + * @generated from field: agent.v1.ShellCommandAction shell_command_action = 5; + */ + value: ShellCommandAction; + case: "shellCommandAction"; + } | { + /** + * @generated from field: agent.v1.StartPlanAction start_plan_action = 6; + */ + value: StartPlanAction; + case: "startPlanAction"; + } | { + /** + * @generated from field: agent.v1.ExecutePlanAction execute_plan_action = 7; + */ + value: ExecutePlanAction; + case: "executePlanAction"; + } | { + /** + * @generated from field: agent.v1.AsyncAskQuestionCompletionAction async_ask_question_completion_action = 8; + */ + value: AsyncAskQuestionCompletionAction; + case: "asyncAskQuestionCompletionAction"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationAction. * Use `create(ConversationActionSchema)` to create a new message. */ -export const ConversationActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 54); +export const ConversationActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 54); /** * @generated from message agent.v1.UserMessageAction */ export type UserMessageAction = Message<"agent.v1.UserMessageAction"> & { - /** - * @generated from field: agent.v1.UserMessage user_message = 1; - */ - userMessage?: UserMessage; + /** + * @generated from field: agent.v1.UserMessage user_message = 1; + */ + userMessage?: UserMessage | undefined; - /** - * @generated from field: agent.v1.RequestContext request_context = 2; - */ - requestContext?: RequestContext; + /** + * @generated from field: agent.v1.RequestContext request_context = 2; + */ + requestContext?: RequestContext | undefined; - /** - * @generated from field: optional bool send_to_interaction_listener = 3; - */ - sendToInteractionListener?: boolean; + /** + * @generated from field: optional bool send_to_interaction_listener = 3; + */ + sendToInteractionListener?: boolean | undefined; }; /** * Describes the message agent.v1.UserMessageAction. * Use `create(UserMessageActionSchema)` to create a new message. */ -export const UserMessageActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 55); +export const UserMessageActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 55); /** * @generated from message agent.v1.CancelAction */ -export type CancelAction = Message<"agent.v1.CancelAction"> & {}; +export type CancelAction = Message<"agent.v1.CancelAction"> & { +}; /** * Describes the message agent.v1.CancelAction. * Use `create(CancelActionSchema)` to create a new message. */ -export const CancelActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 56); +export const CancelActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 56); /** * @generated from message agent.v1.ResumeAction */ export type ResumeAction = Message<"agent.v1.ResumeAction"> & { - /** - * @generated from field: agent.v1.RequestContext request_context = 2; - */ - requestContext?: RequestContext; + /** + * @generated from field: agent.v1.RequestContext request_context = 2; + */ + requestContext?: RequestContext | undefined; }; /** * Describes the message agent.v1.ResumeAction. * Use `create(ResumeActionSchema)` to create a new message. */ -export const ResumeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 57); +export const ResumeActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 57); /** * @generated from message agent.v1.AsyncAskQuestionCompletionAction */ export type AsyncAskQuestionCompletionAction = Message<"agent.v1.AsyncAskQuestionCompletionAction"> & { - /** - * Contains the original tool call ID and the result from the user - * - * @generated from field: string original_tool_call_id = 1; - */ - originalToolCallId: string; + /** + * Contains the original tool call ID and the result from the user + * + * @generated from field: string original_tool_call_id = 1; + */ + originalToolCallId: string; - /** - * @generated from field: agent.v1.AskQuestionArgs original_args = 2; - */ - originalArgs?: AskQuestionArgs; + /** + * @generated from field: agent.v1.AskQuestionArgs original_args = 2; + */ + originalArgs?: AskQuestionArgs | undefined; - /** - * @generated from field: agent.v1.AskQuestionResult result = 3; - */ - result?: AskQuestionResult; + /** + * @generated from field: agent.v1.AskQuestionResult result = 3; + */ + result?: AskQuestionResult | undefined; }; /** * Describes the message agent.v1.AsyncAskQuestionCompletionAction. * Use `create(AsyncAskQuestionCompletionActionSchema)` to create a new message. */ -export const AsyncAskQuestionCompletionActionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 58); +export const AsyncAskQuestionCompletionActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 58); /** * @generated from message agent.v1.SummarizeAction */ -export type SummarizeAction = Message<"agent.v1.SummarizeAction"> & {}; +export type SummarizeAction = Message<"agent.v1.SummarizeAction"> & { +}; /** * Describes the message agent.v1.SummarizeAction. * Use `create(SummarizeActionSchema)` to create a new message. */ -export const SummarizeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 59); +export const SummarizeActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 59); /** * @generated from message agent.v1.ShellCommandAction */ export type ShellCommandAction = Message<"agent.v1.ShellCommandAction"> & { - /** - * @generated from field: agent.v1.ShellCommand shell_command = 1; - */ - shellCommand?: ShellCommand; + /** + * @generated from field: agent.v1.ShellCommand shell_command = 1; + */ + shellCommand?: ShellCommand | undefined; - /** - * unique identifier for preemptive exec attachment - * - * @generated from field: string exec_id = 2; - */ - execId: string; + /** + * unique identifier for preemptive exec attachment + * + * @generated from field: string exec_id = 2; + */ + execId: string; }; /** * Describes the message agent.v1.ShellCommandAction. * Use `create(ShellCommandActionSchema)` to create a new message. */ -export const ShellCommandActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 60); +export const ShellCommandActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 60); /** * @generated from message agent.v1.StartPlanAction */ export type StartPlanAction = Message<"agent.v1.StartPlanAction"> & { - /** - * @generated from field: agent.v1.UserMessage user_message = 1; - */ - userMessage?: UserMessage; + /** + * @generated from field: agent.v1.UserMessage user_message = 1; + */ + userMessage?: UserMessage | undefined; - /** - * @generated from field: agent.v1.RequestContext request_context = 2; - */ - requestContext?: RequestContext; + /** + * @generated from field: agent.v1.RequestContext request_context = 2; + */ + requestContext?: RequestContext | undefined; - /** - * @generated from field: bool is_spec = 3; - */ - isSpec: boolean; + /** + * @generated from field: bool is_spec = 3; + */ + isSpec: boolean; }; /** * Describes the message agent.v1.StartPlanAction. * Use `create(StartPlanActionSchema)` to create a new message. */ -export const StartPlanActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 61); +export const StartPlanActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 61); /** * @generated from message agent.v1.ExecutePlanAction */ export type ExecutePlanAction = Message<"agent.v1.ExecutePlanAction"> & { - /** - * @generated from field: agent.v1.RequestContext request_context = 1; - */ - requestContext?: RequestContext; + /** + * @generated from field: agent.v1.RequestContext request_context = 1; + */ + requestContext?: RequestContext | undefined; - /** - * @generated from field: optional agent.v1.ConversationPlan plan = 2; - */ - plan?: ConversationPlan; + /** + * @generated from field: optional agent.v1.ConversationPlan plan = 2; + */ + plan?: ConversationPlan | undefined; - /** - * e.g., "cursor-plan://composerId/plan.md" - * - * @generated from field: optional string plan_file_uri = 3; - */ - planFileUri?: string; + /** + * e.g., "cursor-plan://composerId/plan.md" + * + * @generated from field: optional string plan_file_uri = 3; + */ + planFileUri?: string | undefined; - /** - * The actual plan content from the file - * - * @generated from field: optional string plan_file_content = 4; - */ - planFileContent?: string; + /** + * The actual plan content from the file + * + * @generated from field: optional string plan_file_content = 4; + */ + planFileContent?: string | undefined; }; /** * Describes the message agent.v1.ExecutePlanAction. * Use `create(ExecutePlanActionSchema)` to create a new message. */ -export const ExecutePlanActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 62); +export const ExecutePlanActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 62); /** * @generated from message agent.v1.UserMessage */ export type UserMessage = Message<"agent.v1.UserMessage"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; - /** - * @generated from field: string message_id = 2; - */ - messageId: string; + /** + * @generated from field: string message_id = 2; + */ + messageId: string; - /** - * @generated from field: optional agent.v1.SelectedContext selected_context = 3; - */ - selectedContext?: SelectedContext; + /** + * @generated from field: optional agent.v1.SelectedContext selected_context = 3; + */ + selectedContext?: SelectedContext | undefined; - /** - * @generated from field: int32 mode = 4; - */ - mode: number; + /** + * @generated from field: int32 mode = 4; + */ + mode: number; - /** - * @generated from field: optional bool is_simulated_msg = 5; - */ - isSimulatedMsg?: boolean; + /** + * @generated from field: optional bool is_simulated_msg = 5; + */ + isSimulatedMsg?: boolean | undefined; - /** - * @generated from field: optional string best_of_n_group_id = 6; - */ - bestOfNGroupId?: string; + /** + * @generated from field: optional string best_of_n_group_id = 6; + */ + bestOfNGroupId?: string | undefined; - /** - * @generated from field: optional bool try_use_best_of_n_promotion = 7; - */ - tryUseBestOfNPromotion?: boolean; + /** + * @generated from field: optional bool try_use_best_of_n_promotion = 7; + */ + tryUseBestOfNPromotion?: boolean | undefined; - /** - * @generated from field: optional string rich_text = 8; - */ - richText?: string; + /** + * @generated from field: optional string rich_text = 8; + */ + richText?: string | undefined; }; /** * Describes the message agent.v1.UserMessage. * Use `create(UserMessageSchema)` to create a new message. */ -export const UserMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 63); +export const UserMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 63); /** * @generated from message agent.v1.AssistantMessage */ export type AssistantMessage = Message<"agent.v1.AssistantMessage"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; }; /** * Describes the message agent.v1.AssistantMessage. * Use `create(AssistantMessageSchema)` to create a new message. */ -export const AssistantMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 64); +export const AssistantMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 64); /** * @generated from message agent.v1.ThinkingMessage */ export type ThinkingMessage = Message<"agent.v1.ThinkingMessage"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; - /** - * @generated from field: uint32 duration_ms = 2; - */ - durationMs: number; + /** + * @generated from field: uint32 duration_ms = 2; + */ + durationMs: number; }; /** * Describes the message agent.v1.ThinkingMessage. * Use `create(ThinkingMessageSchema)` to create a new message. */ -export const ThinkingMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 65); +export const ThinkingMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 65); /** * @generated from message agent.v1.ShellCommand */ export type ShellCommand = Message<"agent.v1.ShellCommand"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; }; /** * Describes the message agent.v1.ShellCommand. * Use `create(ShellCommandSchema)` to create a new message. */ -export const ShellCommandSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 66); +export const ShellCommandSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 66); /** * @generated from message agent.v1.ShellOutput */ export type ShellOutput = Message<"agent.v1.ShellOutput"> & { - /** - * @generated from field: string stdout = 1; - */ - stdout: string; + /** + * @generated from field: string stdout = 1; + */ + stdout: string; - /** - * @generated from field: string stderr = 2; - */ - stderr: string; + /** + * @generated from field: string stderr = 2; + */ + stderr: string; - /** - * @generated from field: int32 exit_code = 3; - */ - exitCode: number; + /** + * @generated from field: int32 exit_code = 3; + */ + exitCode: number; }; /** * Describes the message agent.v1.ShellOutput. * Use `create(ShellOutputSchema)` to create a new message. */ -export const ShellOutputSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 67); +export const ShellOutputSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 67); /** * @generated from message agent.v1.ConversationTurn */ export type ConversationTurn = Message<"agent.v1.ConversationTurn"> & { - /** - * @generated from oneof agent.v1.ConversationTurn.turn - */ - turn: - | { - /** - * @generated from field: agent.v1.AgentConversationTurn agent_conversation_turn = 1; - */ - value: AgentConversationTurn; - case: "agentConversationTurn"; - } - | { - /** - * @generated from field: agent.v1.ShellConversationTurn shell_conversation_turn = 2; - */ - value: ShellConversationTurn; - case: "shellConversationTurn"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ConversationTurn.turn + */ + turn: { + /** + * @generated from field: agent.v1.AgentConversationTurn agent_conversation_turn = 1; + */ + value: AgentConversationTurn; + case: "agentConversationTurn"; + } | { + /** + * @generated from field: agent.v1.ShellConversationTurn shell_conversation_turn = 2; + */ + value: ShellConversationTurn; + case: "shellConversationTurn"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationTurn. * Use `create(ConversationTurnSchema)` to create a new message. */ -export const ConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 68); +export const ConversationTurnSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 68); /** * @generated from message agent.v1.ConversationPlan */ export type ConversationPlan = Message<"agent.v1.ConversationPlan"> & { - /** - * @generated from field: string plan = 1; - */ - plan: string; + /** + * @generated from field: string plan = 1; + */ + plan: string; }; /** * Describes the message agent.v1.ConversationPlan. * Use `create(ConversationPlanSchema)` to create a new message. */ -export const ConversationPlanSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 69); +export const ConversationPlanSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 69); /** * @generated from message agent.v1.ConversationTurnStructure */ export type ConversationTurnStructure = Message<"agent.v1.ConversationTurnStructure"> & { - /** - * @generated from oneof agent.v1.ConversationTurnStructure.turn - */ - turn: - | { - /** - * @generated from field: agent.v1.AgentConversationTurnStructure agent_conversation_turn = 1; - */ - value: AgentConversationTurnStructure; - case: "agentConversationTurn"; - } - | { - /** - * @generated from field: agent.v1.ShellConversationTurnStructure shell_conversation_turn = 2; - */ - value: ShellConversationTurnStructure; - case: "shellConversationTurn"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ConversationTurnStructure.turn + */ + turn: { + /** + * @generated from field: agent.v1.AgentConversationTurnStructure agent_conversation_turn = 1; + */ + value: AgentConversationTurnStructure; + case: "agentConversationTurn"; + } | { + /** + * @generated from field: agent.v1.ShellConversationTurnStructure shell_conversation_turn = 2; + */ + value: ShellConversationTurnStructure; + case: "shellConversationTurn"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ConversationTurnStructure. * Use `create(ConversationTurnStructureSchema)` to create a new message. */ -export const ConversationTurnStructureSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 70); +export const ConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 70); /** * @generated from message agent.v1.AgentConversationTurn */ export type AgentConversationTurn = Message<"agent.v1.AgentConversationTurn"> & { - /** - * @generated from field: agent.v1.UserMessage user_message = 1; - */ - userMessage?: UserMessage; + /** + * @generated from field: agent.v1.UserMessage user_message = 1; + */ + userMessage?: UserMessage | undefined; - /** - * @generated from field: repeated agent.v1.ConversationStep steps = 2; - */ - steps: ConversationStep[]; + /** + * @generated from field: repeated agent.v1.ConversationStep steps = 2; + */ + steps: ConversationStep[]; - /** - * The request ID associated with this turn, used for analytics tracking - * - * @generated from field: optional string request_id = 3; - */ - requestId?: string; + /** + * The request ID associated with this turn, used for analytics tracking + * + * @generated from field: optional string request_id = 3; + */ + requestId?: string | undefined; }; /** * Describes the message agent.v1.AgentConversationTurn. * Use `create(AgentConversationTurnSchema)` to create a new message. */ -export const AgentConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 71); +export const AgentConversationTurnSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 71); /** * @generated from message agent.v1.AgentConversationTurnStructure */ export type AgentConversationTurnStructure = Message<"agent.v1.AgentConversationTurnStructure"> & { - /** - * @generated from field: bytes user_message = 1; - */ - userMessage: Uint8Array; + /** + * @generated from field: bytes user_message = 1; + */ + userMessage: Uint8Array; - /** - * @generated from field: repeated bytes steps = 2; - */ - steps: Uint8Array[]; + /** + * @generated from field: repeated bytes steps = 2; + */ + steps: Uint8Array[]; - /** - * The request ID associated with this turn, used for analytics tracking - * - * @generated from field: optional string request_id = 3; - */ - requestId?: string; + /** + * The request ID associated with this turn, used for analytics tracking + * + * @generated from field: optional string request_id = 3; + */ + requestId?: string | undefined; }; /** * Describes the message agent.v1.AgentConversationTurnStructure. * Use `create(AgentConversationTurnStructureSchema)` to create a new message. */ -export const AgentConversationTurnStructureSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 72); +export const AgentConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 72); /** * @generated from message agent.v1.ShellConversationTurn */ export type ShellConversationTurn = Message<"agent.v1.ShellConversationTurn"> & { - /** - * @generated from field: agent.v1.ShellCommand shell_command = 1; - */ - shellCommand?: ShellCommand; + /** + * @generated from field: agent.v1.ShellCommand shell_command = 1; + */ + shellCommand?: ShellCommand | undefined; - /** - * @generated from field: agent.v1.ShellOutput shell_output = 2; - */ - shellOutput?: ShellOutput; + /** + * @generated from field: agent.v1.ShellOutput shell_output = 2; + */ + shellOutput?: ShellOutput | undefined; }; /** * Describes the message agent.v1.ShellConversationTurn. * Use `create(ShellConversationTurnSchema)` to create a new message. */ -export const ShellConversationTurnSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 73); +export const ShellConversationTurnSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 73); /** * @generated from message agent.v1.ShellConversationTurnStructure */ export type ShellConversationTurnStructure = Message<"agent.v1.ShellConversationTurnStructure"> & { - /** - * @generated from field: bytes shell_command = 1; - */ - shellCommand: Uint8Array; + /** + * @generated from field: bytes shell_command = 1; + */ + shellCommand: Uint8Array; - /** - * @generated from field: bytes shell_output = 2; - */ - shellOutput: Uint8Array; + /** + * @generated from field: bytes shell_output = 2; + */ + shellOutput: Uint8Array; }; /** * Describes the message agent.v1.ShellConversationTurnStructure. * Use `create(ShellConversationTurnStructureSchema)` to create a new message. */ -export const ShellConversationTurnStructureSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 74); +export const ShellConversationTurnStructureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 74); /** * @generated from message agent.v1.ConversationSummary */ export type ConversationSummary = Message<"agent.v1.ConversationSummary"> & { - /** - * @generated from field: string summary = 1; - */ - summary: string; + /** + * @generated from field: string summary = 1; + */ + summary: string; }; /** * Describes the message agent.v1.ConversationSummary. * Use `create(ConversationSummarySchema)` to create a new message. */ -export const ConversationSummarySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 75); +export const ConversationSummarySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 75); /** * @generated from message agent.v1.ConversationSummaryArchive */ export type ConversationSummaryArchive = Message<"agent.v1.ConversationSummaryArchive"> & { - /** - * @generated from field: repeated bytes summarized_messages = 1; - */ - summarizedMessages: Uint8Array[]; + /** + * @generated from field: repeated bytes summarized_messages = 1; + */ + summarizedMessages: Uint8Array[]; - /** - * @generated from field: string summary = 2; - */ - summary: string; + /** + * @generated from field: string summary = 2; + */ + summary: string; - /** - * @generated from field: uint32 window_tail = 3; - */ - windowTail: number; + /** + * @generated from field: uint32 window_tail = 3; + */ + windowTail: number; - /** - * @generated from field: bytes summary_message = 4; - */ - summaryMessage: Uint8Array; + /** + * @generated from field: bytes summary_message = 4; + */ + summaryMessage: Uint8Array; }; /** * Describes the message agent.v1.ConversationSummaryArchive. * Use `create(ConversationSummaryArchiveSchema)` to create a new message. */ -export const ConversationSummaryArchiveSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 76); +export const ConversationSummaryArchiveSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 76); /** * @generated from message agent.v1.ConversationTokenDetails */ export type ConversationTokenDetails = Message<"agent.v1.ConversationTokenDetails"> & { - /** - * @generated from field: uint32 used_tokens = 1; - */ - usedTokens: number; + /** + * @generated from field: uint32 used_tokens = 1; + */ + usedTokens: number; - /** - * @generated from field: uint32 max_tokens = 2; - */ - maxTokens: number; + /** + * @generated from field: uint32 max_tokens = 2; + */ + maxTokens: number; }; /** * Describes the message agent.v1.ConversationTokenDetails. * Use `create(ConversationTokenDetailsSchema)` to create a new message. */ -export const ConversationTokenDetailsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 77); +export const ConversationTokenDetailsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 77); /** * @generated from message agent.v1.FileState */ export type FileState = Message<"agent.v1.FileState"> & { - /** - * Optional content. If not set or undefined, the file is considered deleted. - * - * @generated from field: optional string content = 1; - */ - content?: string; + /** + * Optional content. If not set or undefined, the file is considered deleted. + * + * @generated from field: optional string content = 1; + */ + content?: string | undefined; - /** - * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. - * - * @generated from field: optional string initial_content = 2; - */ - initialContent?: string; + /** + * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. + * + * @generated from field: optional string initial_content = 2; + */ + initialContent?: string | undefined; }; /** * Describes the message agent.v1.FileState. * Use `create(FileStateSchema)` to create a new message. */ -export const FileStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 78); +export const FileStateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 78); /** * @generated from message agent.v1.FileStateStructure */ export type FileStateStructure = Message<"agent.v1.FileStateStructure"> & { - /** - * Optional content. If not set or undefined, the file is considered deleted. - * - * @generated from field: optional bytes content = 1; - */ - content?: Uint8Array; + /** + * Optional content. If not set or undefined, the file is considered deleted. + * + * @generated from field: optional bytes content = 1; + */ + content?: Uint8Array | undefined; - /** - * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. - * - * @generated from field: optional bytes initial_content = 2; - */ - initialContent?: Uint8Array; + /** + * Optional initial content captured when the file was first tracked. If not set or undefined, the file did not exist when tracking began. + * + * @generated from field: optional bytes initial_content = 2; + */ + initialContent?: Uint8Array | undefined; }; /** * Describes the message agent.v1.FileStateStructure. * Use `create(FileStateStructureSchema)` to create a new message. */ -export const FileStateStructureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 79); +export const FileStateStructureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 79); /** * @generated from message agent.v1.StepTiming */ export type StepTiming = Message<"agent.v1.StepTiming"> & { - /** - * @generated from field: uint64 duration_ms = 1; - */ - durationMs: bigint; + /** + * @generated from field: uint64 duration_ms = 1; + */ + durationMs: bigint; - /** - * @generated from field: uint64 timestamp_ms = 2; - */ - timestampMs: bigint; + /** + * @generated from field: uint64 timestamp_ms = 2; + */ + timestampMs: bigint; }; /** * Describes the message agent.v1.StepTiming. * Use `create(StepTimingSchema)` to create a new message. */ -export const StepTimingSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 80); +export const StepTimingSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 80); /** * @generated from message agent.v1.ConversationState */ export type ConversationState = Message<"agent.v1.ConversationState"> & { - /** - * @generated from field: repeated string root_prompt_messages_json = 1; - */ - rootPromptMessagesJson: string[]; + /** + * @generated from field: repeated string root_prompt_messages_json = 1; + */ + rootPromptMessagesJson: string[]; - /** - * @generated from field: repeated agent.v1.ConversationTurn turns = 8; - */ - turns: ConversationTurn[]; + /** + * @generated from field: repeated agent.v1.ConversationTurn turns = 8; + */ + turns: ConversationTurn[]; - /** - * @generated from field: repeated agent.v1.TodoItem todos = 3; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 3; + */ + todos: TodoItem[]; - /** - * Raw JSON stringified tool-call content parts awaiting execution - * - * @generated from field: repeated string pending_tool_calls = 4; - */ - pendingToolCalls: string[]; + /** + * Raw JSON stringified tool-call content parts awaiting execution + * + * @generated from field: repeated string pending_tool_calls = 4; + */ + pendingToolCalls: string[]; - /** - * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; - */ - tokenDetails?: ConversationTokenDetails; + /** + * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; + */ + tokenDetails?: ConversationTokenDetails | undefined; - /** - * only for when the user explicitly asks for a summary through the summary action - * - * @generated from field: optional agent.v1.ConversationSummary summary = 6; - */ - summary?: ConversationSummary; + /** + * only for when the user explicitly asks for a summary through the summary action + * + * @generated from field: optional agent.v1.ConversationSummary summary = 6; + */ + summary?: ConversationSummary | undefined; - /** - * @generated from field: optional agent.v1.ConversationPlan plan = 7; - */ - plan?: ConversationPlan; + /** + * @generated from field: optional agent.v1.ConversationPlan plan = 7; + */ + plan?: ConversationPlan | undefined; - /** - * @generated from field: optional agent.v1.ConversationSummaryArchive summary_archive = 9; - */ - summaryArchive?: ConversationSummaryArchive; + /** + * @generated from field: optional agent.v1.ConversationSummaryArchive summary_archive = 9; + */ + summaryArchive?: ConversationSummaryArchive | undefined; - /** - * Deprecated, use summary_archives instead @deprecated summaryArchive; - * - * @generated from field: map file_states = 10; - */ - fileStates: { [key: string]: FileState }; + /** + * Deprecated, use summary_archives instead @deprecated summaryArchive; + * + * @generated from field: map file_states = 10; + */ + fileStates: { [key: string]: FileState }; - /** - * @generated from field: repeated agent.v1.ConversationSummaryArchive summary_archives = 11; - */ - summaryArchives: ConversationSummaryArchive[]; + /** + * @generated from field: repeated agent.v1.ConversationSummaryArchive summary_archives = 11; + */ + summaryArchives: ConversationSummaryArchive[]; }; /** * Describes the message agent.v1.ConversationState. * Use `create(ConversationStateSchema)` to create a new message. */ -export const ConversationStateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 81); +export const ConversationStateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 81); /** * @generated from message agent.v1.SubagentPersistedState */ export type SubagentPersistedState = Message<"agent.v1.SubagentPersistedState"> & { - /** - * The subagent's conversation state structure - * - * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; - */ - conversationState?: ConversationStateStructure; + /** + * The subagent's conversation state structure + * + * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; + */ + conversationState?: ConversationStateStructure | undefined; - /** - * Timestamp when this subagent was first created - * - * @generated from field: uint64 created_timestamp_ms = 2; - */ - createdTimestampMs: bigint; + /** + * Timestamp when this subagent was first created + * + * @generated from field: uint64 created_timestamp_ms = 2; + */ + createdTimestampMs: bigint; - /** - * Timestamp when this subagent was last used (by task tool call) - * - * @generated from field: uint64 last_used_timestamp_ms = 3; - */ - lastUsedTimestampMs: bigint; + /** + * Timestamp when this subagent was last used (by task tool call) + * + * @generated from field: uint64 last_used_timestamp_ms = 3; + */ + lastUsedTimestampMs: bigint; - /** - * The subagent type (e.g., computerUse, custom with name) - * - * @generated from field: agent.v1.SubagentType subagent_type = 4; - */ - subagentType?: SubagentType; + /** + * The subagent type (e.g., computerUse, custom with name) + * + * @generated from field: agent.v1.SubagentType subagent_type = 4; + */ + subagentType?: SubagentType | undefined; }; /** * Describes the message agent.v1.SubagentPersistedState. * Use `create(SubagentPersistedStateSchema)` to create a new message. */ -export const SubagentPersistedStateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 82); +export const SubagentPersistedStateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 82); /** * @generated from message agent.v1.ConversationStateStructure */ export type ConversationStateStructure = Message<"agent.v1.ConversationStateStructure"> & { - /** - * @generated from field: repeated bytes turns_old = 2; - */ - turnsOld: Uint8Array[]; + /** + * @generated from field: repeated bytes turns_old = 2; + */ + turnsOld: Uint8Array[]; - /** - * @deprecated turnsOld = []; - * - * @generated from field: repeated bytes root_prompt_messages_json = 1; - */ - rootPromptMessagesJson: Uint8Array[]; + /** + * @deprecated turnsOld = []; + * + * @generated from field: repeated bytes root_prompt_messages_json = 1; + */ + rootPromptMessagesJson: Uint8Array[]; - /** - * @generated from field: repeated bytes turns = 8; - */ - turns: Uint8Array[]; + /** + * @generated from field: repeated bytes turns = 8; + */ + turns: Uint8Array[]; - /** - * @generated from field: repeated bytes todos = 3; - */ - todos: Uint8Array[]; + /** + * @generated from field: repeated bytes todos = 3; + */ + todos: Uint8Array[]; - /** - * Raw JSON stringified tool-call content parts awaiting execution - * - * @generated from field: repeated string pending_tool_calls = 4; - */ - pendingToolCalls: string[]; + /** + * Raw JSON stringified tool-call content parts awaiting execution + * + * @generated from field: repeated string pending_tool_calls = 4; + */ + pendingToolCalls: string[]; - /** - * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; - */ - tokenDetails?: ConversationTokenDetails; + /** + * @generated from field: agent.v1.ConversationTokenDetails token_details = 5; + */ + tokenDetails?: ConversationTokenDetails | undefined; - /** - * only for when the user explicitly asks for a summary through the summary action - * - * @generated from field: optional bytes summary = 6; - */ - summary?: Uint8Array; + /** + * only for when the user explicitly asks for a summary through the summary action + * + * @generated from field: optional bytes summary = 6; + */ + summary?: Uint8Array | undefined; - /** - * @generated from field: optional bytes plan = 7; - */ - plan?: Uint8Array; + /** + * @generated from field: optional bytes plan = 7; + */ + plan?: Uint8Array | undefined; - /** - * @generated from field: repeated string previous_workspace_uris = 9; - */ - previousWorkspaceUris: string[]; + /** + * @generated from field: repeated string previous_workspace_uris = 9; + */ + previousWorkspaceUris: string[]; - /** - * Current mode of the conversation - * - * @generated from field: optional int32 mode = 10; - */ - mode?: number; + /** + * Current mode of the conversation + * + * @generated from field: optional int32 mode = 10; + */ + mode?: number | undefined; - /** - * @generated from field: optional bytes summary_archive = 11; - */ - summaryArchive?: Uint8Array; + /** + * @generated from field: optional bytes summary_archive = 11; + */ + summaryArchive?: Uint8Array | undefined; - /** - * @generated from field: map file_states = 12; - */ - fileStates: { [key: string]: Uint8Array }; + /** + * @generated from field: map file_states = 12; + */ + fileStates: { [key: string]: Uint8Array }; - /** - * Deprecated, use summary_archives instead @deprecated summaryArchive; Map of file paths to their latest content (stored as blob IDs in the KV store) Each blob contains a serialized FileState message @deprecated fileStates = {}; Map of file paths to their latest content (stored as FileStateStructure) - * - * @generated from field: map file_states_v2 = 15; - */ - fileStatesV2: { [key: string]: FileStateStructure }; + /** + * Deprecated, use summary_archives instead @deprecated summaryArchive; Map of file paths to their latest content (stored as blob IDs in the KV store) Each blob contains a serialized FileState message @deprecated fileStates = {}; Map of file paths to their latest content (stored as FileStateStructure) + * + * @generated from field: map file_states_v2 = 15; + */ + fileStatesV2: { [key: string]: FileStateStructure }; - /** - * @generated from field: repeated bytes summary_archives = 13; - */ - summaryArchives: Uint8Array[]; + /** + * @generated from field: repeated bytes summary_archives = 13; + */ + summaryArchives: Uint8Array[]; - /** - * @generated from field: repeated agent.v1.StepTiming turn_timings = 14; - */ - turnTimings: StepTiming[]; + /** + * @generated from field: repeated agent.v1.StepTiming turn_timings = 14; + */ + turnTimings: StepTiming[]; - /** - * Subagent resume tracking Map of subagent ID to the persisted subagent state (stored inline) - * - * @generated from field: map subagent_states = 16; - */ - subagentStates: { [key: string]: SubagentPersistedState }; + /** + * Subagent resume tracking Map of subagent ID to the persisted subagent state (stored inline) + * + * @generated from field: map subagent_states = 16; + */ + subagentStates: { [key: string]: SubagentPersistedState }; - /** - * Count of self-summaries generated for this conversation - * - * @generated from field: uint32 self_summary_count = 17; - */ - selfSummaryCount: number; + /** + * Count of self-summaries generated for this conversation + * + * @generated from field: uint32 self_summary_count = 17; + */ + selfSummaryCount: number; - /** - * Set of file paths that have been read during this conversation - * - * @generated from field: repeated string read_paths = 18; - */ - readPaths: string[]; + /** + * Set of file paths that have been read during this conversation + * + * @generated from field: repeated string read_paths = 18; + */ + readPaths: string[]; }; /** * Describes the message agent.v1.ConversationStateStructure. * Use `create(ConversationStateStructureSchema)` to create a new message. */ -export const ConversationStateStructureSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 83); +export const ConversationStateStructureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 83); /** * @generated from message agent.v1.ThinkingDetails */ -export type ThinkingDetails = Message<"agent.v1.ThinkingDetails"> & {}; +export type ThinkingDetails = Message<"agent.v1.ThinkingDetails"> & { +}; /** * Describes the message agent.v1.ThinkingDetails. * Use `create(ThinkingDetailsSchema)` to create a new message. */ -export const ThinkingDetailsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 84); +export const ThinkingDetailsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 84); /** * @generated from message agent.v1.ApiKeyCredentials */ export type ApiKeyCredentials = Message<"agent.v1.ApiKeyCredentials"> & { - /** - * @generated from field: string api_key = 1; - */ - apiKey: string; + /** + * @generated from field: string api_key = 1; + */ + apiKey: string; - /** - * For OpenAI-compatible endpoints - * - * @generated from field: optional string base_url = 2; - */ - baseUrl?: string; + /** + * For OpenAI-compatible endpoints + * + * @generated from field: optional string base_url = 2; + */ + baseUrl?: string | undefined; }; /** * Describes the message agent.v1.ApiKeyCredentials. * Use `create(ApiKeyCredentialsSchema)` to create a new message. */ -export const ApiKeyCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 85); +export const ApiKeyCredentialsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 85); /** * @generated from message agent.v1.AzureCredentials */ export type AzureCredentials = Message<"agent.v1.AzureCredentials"> & { - /** - * @generated from field: string api_key = 1; - */ - apiKey: string; + /** + * @generated from field: string api_key = 1; + */ + apiKey: string; - /** - * @generated from field: string base_url = 2; - */ - baseUrl: string; + /** + * @generated from field: string base_url = 2; + */ + baseUrl: string; - /** - * @generated from field: string deployment = 3; - */ - deployment: string; + /** + * @generated from field: string deployment = 3; + */ + deployment: string; }; /** * Describes the message agent.v1.AzureCredentials. * Use `create(AzureCredentialsSchema)` to create a new message. */ -export const AzureCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 86); +export const AzureCredentialsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 86); /** * @generated from message agent.v1.BedrockCredentials */ export type BedrockCredentials = Message<"agent.v1.BedrockCredentials"> & { - /** - * @generated from field: string access_key = 1; - */ - accessKey: string; + /** + * @generated from field: string access_key = 1; + */ + accessKey: string; - /** - * @generated from field: string secret_key = 2; - */ - secretKey: string; + /** + * @generated from field: string secret_key = 2; + */ + secretKey: string; - /** - * @generated from field: string region = 3; - */ - region: string; + /** + * @generated from field: string region = 3; + */ + region: string; - /** - * @generated from field: optional string session_token = 4; - */ - sessionToken?: string; + /** + * @generated from field: optional string session_token = 4; + */ + sessionToken?: string | undefined; }; /** * Describes the message agent.v1.BedrockCredentials. * Use `create(BedrockCredentialsSchema)` to create a new message. */ -export const BedrockCredentialsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 87); +export const BedrockCredentialsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 87); /** * @generated from message agent.v1.ModelDetails */ export type ModelDetails = Message<"agent.v1.ModelDetails"> & { - /** - * @generated from field: string model_id = 1; - */ - modelId: string; + /** + * @generated from field: string model_id = 1; + */ + modelId: string; - /** - * @generated from field: string display_model_id = 3; - */ - displayModelId: string; + /** + * @generated from field: string display_model_id = 3; + */ + displayModelId: string; - /** - * @generated from field: string display_name = 4; - */ - displayName: string; + /** + * @generated from field: string display_name = 4; + */ + displayName: string; - /** - * @generated from field: string display_name_short = 5; - */ - displayNameShort: string; + /** + * @generated from field: string display_name_short = 5; + */ + displayNameShort: string; - /** - * @generated from field: repeated string aliases = 6; - */ - aliases: string[]; + /** + * @generated from field: repeated string aliases = 6; + */ + aliases: string[]; - /** - * @generated from field: optional agent.v1.ThinkingDetails thinking_details = 2; - */ - thinkingDetails?: ThinkingDetails; + /** + * @generated from field: optional agent.v1.ThinkingDetails thinking_details = 2; + */ + thinkingDetails?: ThinkingDetails | undefined; - /** - * @generated from field: optional bool max_mode = 7; - */ - maxMode?: boolean; + /** + * @generated from field: optional bool max_mode = 7; + */ + maxMode?: boolean | undefined; - /** - * @generated from oneof agent.v1.ModelDetails.credentials - */ - credentials: - | { - /** - * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 8; - */ - value: ApiKeyCredentials; - case: "apiKeyCredentials"; - } - | { - /** - * @generated from field: agent.v1.AzureCredentials azure_credentials = 9; - */ - value: AzureCredentials; - case: "azureCredentials"; - } - | { - /** - * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 10; - */ - value: BedrockCredentials; - case: "bedrockCredentials"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ModelDetails.credentials + */ + credentials: { + /** + * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 8; + */ + value: ApiKeyCredentials; + case: "apiKeyCredentials"; + } | { + /** + * @generated from field: agent.v1.AzureCredentials azure_credentials = 9; + */ + value: AzureCredentials; + case: "azureCredentials"; + } | { + /** + * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 10; + */ + value: BedrockCredentials; + case: "bedrockCredentials"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ModelDetails. * Use `create(ModelDetailsSchema)` to create a new message. */ -export const ModelDetailsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 88); +export const ModelDetailsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 88); /** * @generated from message agent.v1.RequestedModel */ export type RequestedModel = Message<"agent.v1.RequestedModel"> & { - /** - * @generated from field: string model_id = 1; - */ - modelId: string; + /** + * @generated from field: string model_id = 1; + */ + modelId: string; - /** - * @generated from field: bool max_mode = 2; - */ - maxMode: boolean; + /** + * @generated from field: bool max_mode = 2; + */ + maxMode: boolean; - /** - * @generated from field: repeated agent.v1.RequestedModel_ModelParameterbytes parameters = 3; - */ - parameters: RequestedModel_ModelParameterbytes[]; + /** + * @generated from field: repeated agent.v1.RequestedModel_ModelParameterbytes parameters = 3; + */ + parameters: RequestedModel_ModelParameterbytes[]; - /** - * @generated from oneof agent.v1.RequestedModel.credentials - */ - credentials: - | { - /** - * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 4; - */ - value: ApiKeyCredentials; - case: "apiKeyCredentials"; - } - | { - /** - * @generated from field: agent.v1.AzureCredentials azure_credentials = 5; - */ - value: AzureCredentials; - case: "azureCredentials"; - } - | { - /** - * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 6; - */ - value: BedrockCredentials; - case: "bedrockCredentials"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.RequestedModel.credentials + */ + credentials: { + /** + * @generated from field: agent.v1.ApiKeyCredentials api_key_credentials = 4; + */ + value: ApiKeyCredentials; + case: "apiKeyCredentials"; + } | { + /** + * @generated from field: agent.v1.AzureCredentials azure_credentials = 5; + */ + value: AzureCredentials; + case: "azureCredentials"; + } | { + /** + * @generated from field: agent.v1.BedrockCredentials bedrock_credentials = 6; + */ + value: BedrockCredentials; + case: "bedrockCredentials"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RequestedModel. * Use `create(RequestedModelSchema)` to create a new message. */ -export const RequestedModelSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 89); +export const RequestedModelSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 89); /** * @generated from message agent.v1.RequestedModel_ModelParameterbytes */ export type RequestedModel_ModelParameterbytes = Message<"agent.v1.RequestedModel_ModelParameterbytes"> & { - /** - * @generated from field: string id = 1; - */ - id: string; + /** + * @generated from field: string id = 1; + */ + id: string; - /** - * All paramters are encoded as strings. For boolean parameters, the value is either "true" or "false". For enum parameters, the value is one of the values in the enum. - * - * @generated from field: string value = 2; - */ - value: string; + /** + * All paramters are encoded as strings. For boolean parameters, the value is either "true" or "false". For enum parameters, the value is one of the values in the enum. + * + * @generated from field: string value = 2; + */ + value: string; }; /** * Describes the message agent.v1.RequestedModel_ModelParameterbytes. * Use `create(RequestedModel_ModelParameterbytesSchema)` to create a new message. */ -export const RequestedModel_ModelParameterbytesSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 90); +export const RequestedModel_ModelParameterbytesSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 90); /** * @generated from message agent.v1.AgentRunRequest */ export type AgentRunRequest = Message<"agent.v1.AgentRunRequest"> & { - /** - * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; - */ - conversationState?: ConversationStateStructure; + /** + * @generated from field: agent.v1.ConversationStateStructure conversation_state = 1; + */ + conversationState?: ConversationStateStructure | undefined; - /** - * @generated from field: agent.v1.ConversationAction action = 2; - */ - action?: ConversationAction; + /** + * @generated from field: agent.v1.ConversationAction action = 2; + */ + action?: ConversationAction | undefined; - /** - * TODO: Today we use model_details, but we are getting ready to deprecate that and use requested_model instead. - * - * @generated from field: agent.v1.ModelDetails model_details = 3; - */ - modelDetails?: ModelDetails; + /** + * TODO: Today we use model_details, but we are getting ready to deprecate that and use requested_model instead. + * + * @generated from field: agent.v1.ModelDetails model_details = 3; + */ + modelDetails?: ModelDetails | undefined; - /** - * @generated from field: optional agent.v1.RequestedModel requested_model = 9; - */ - requestedModel?: RequestedModel; + /** + * @generated from field: optional agent.v1.RequestedModel requested_model = 9; + */ + requestedModel?: RequestedModel | undefined; - /** - * @generated from field: agent.v1.McpTools mcp_tools = 4; - */ - mcpTools?: McpTools; + /** + * @generated from field: agent.v1.McpTools mcp_tools = 4; + */ + mcpTools?: McpTools | undefined; - /** - * @generated from field: optional string conversation_id = 5; - */ - conversationId?: string; + /** + * @generated from field: optional string conversation_id = 5; + */ + conversationId?: string | undefined; - /** - * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 6; - */ - mcpFileSystemOptions?: McpFileSystemOptions; + /** + * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 6; + */ + mcpFileSystemOptions?: McpFileSystemOptions | undefined; - /** - * Deprecated, use the one in RequestContext message in request_context_exec.proto instead - * - * @generated from field: optional agent.v1.SkillOptions skill_options = 7; - */ - skillOptions?: SkillOptions; + /** + * Deprecated, use the one in RequestContext message in request_context_exec.proto instead + * + * @generated from field: optional agent.v1.SkillOptions skill_options = 7; + */ + skillOptions?: SkillOptions | undefined; - /** - * Custom system prompt override. Allowlisted for specific teams only. - * - * @generated from field: optional string custom_system_prompt = 8; - */ - customSystemPrompt?: string; + /** + * Custom system prompt override. Allowlisted for specific teams only. + * + * @generated from field: optional string custom_system_prompt = 8; + */ + customSystemPrompt?: string | undefined; }; /** * Describes the message agent.v1.AgentRunRequest. * Use `create(AgentRunRequestSchema)` to create a new message. */ -export const AgentRunRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 91); +export const AgentRunRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 91); /** * @generated from message agent.v1.TextDeltaUpdate */ export type TextDeltaUpdate = Message<"agent.v1.TextDeltaUpdate"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; }; /** * Describes the message agent.v1.TextDeltaUpdate. * Use `create(TextDeltaUpdateSchema)` to create a new message. */ -export const TextDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 92); +export const TextDeltaUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 92); /** * @generated from message agent.v1.ToolCallStartedUpdate */ export type ToolCallStartedUpdate = Message<"agent.v1.ToolCallStartedUpdate"> & { - /** - * @generated from field: string call_id = 1; - */ - callId: string; + /** + * @generated from field: string call_id = 1; + */ + callId: string; - /** - * @generated from field: agent.v1.ToolCall tool_call = 2; - */ - toolCall?: ToolCall; + /** + * @generated from field: agent.v1.ToolCall tool_call = 2; + */ + toolCall?: ToolCall | undefined; - /** - * groups tool calls that originate from the same model provider call - * - * @generated from field: string model_call_id = 3; - */ - modelCallId: string; + /** + * groups tool calls that originate from the same model provider call + * + * @generated from field: string model_call_id = 3; + */ + modelCallId: string; }; /** * Describes the message agent.v1.ToolCallStartedUpdate. * Use `create(ToolCallStartedUpdateSchema)` to create a new message. */ -export const ToolCallStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 93); +export const ToolCallStartedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 93); /** * @generated from message agent.v1.ToolCallCompletedUpdate */ export type ToolCallCompletedUpdate = Message<"agent.v1.ToolCallCompletedUpdate"> & { - /** - * @generated from field: string call_id = 1; - */ - callId: string; + /** + * @generated from field: string call_id = 1; + */ + callId: string; - /** - * @generated from field: agent.v1.ToolCall tool_call = 2; - */ - toolCall?: ToolCall; + /** + * @generated from field: agent.v1.ToolCall tool_call = 2; + */ + toolCall?: ToolCall | undefined; - /** - * groups tool calls that originate from the same model provider call - * - * @generated from field: string model_call_id = 3; - */ - modelCallId: string; + /** + * groups tool calls that originate from the same model provider call + * + * @generated from field: string model_call_id = 3; + */ + modelCallId: string; }; /** * Describes the message agent.v1.ToolCallCompletedUpdate. * Use `create(ToolCallCompletedUpdateSchema)` to create a new message. */ -export const ToolCallCompletedUpdateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 94); +export const ToolCallCompletedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 94); /** * @generated from message agent.v1.ToolCallDeltaUpdate */ export type ToolCallDeltaUpdate = Message<"agent.v1.ToolCallDeltaUpdate"> & { - /** - * @generated from field: string call_id = 1; - */ - callId: string; + /** + * @generated from field: string call_id = 1; + */ + callId: string; - /** - * @generated from field: agent.v1.ToolCallDelta tool_call_delta = 2; - */ - toolCallDelta?: ToolCallDelta; + /** + * @generated from field: agent.v1.ToolCallDelta tool_call_delta = 2; + */ + toolCallDelta?: ToolCallDelta | undefined; - /** - * groups tool calls that originate from the same model provider call - * - * @generated from field: string model_call_id = 3; - */ - modelCallId: string; + /** + * groups tool calls that originate from the same model provider call + * + * @generated from field: string model_call_id = 3; + */ + modelCallId: string; }; /** * Describes the message agent.v1.ToolCallDeltaUpdate. * Use `create(ToolCallDeltaUpdateSchema)` to create a new message. */ -export const ToolCallDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 95); +export const ToolCallDeltaUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 95); /** * Streaming update for partial tool call arguments @@ -2900,195 +2866,198 @@ export const ToolCallDeltaUpdateSchema: GenMessage = /*@__P * @generated from message agent.v1.PartialToolCallUpdate */ export type PartialToolCallUpdate = Message<"agent.v1.PartialToolCallUpdate"> & { - /** - * @generated from field: string call_id = 1; - */ - callId: string; + /** + * @generated from field: string call_id = 1; + */ + callId: string; - /** - * @generated from field: agent.v1.ToolCall tool_call = 2; - */ - toolCall?: ToolCall; + /** + * @generated from field: agent.v1.ToolCall tool_call = 2; + */ + toolCall?: ToolCall | undefined; - /** - * Aggregated args text so far (as JSON text). May be incomplete until final tool call. - * - * @generated from field: string args_text_delta = 3; - */ - argsTextDelta: string; + /** + * Aggregated args text so far (as JSON text). May be incomplete until final tool call. + * + * @generated from field: string args_text_delta = 3; + */ + argsTextDelta: string; - /** - * groups tool calls that originate from the same model provider call - * - * @generated from field: string model_call_id = 4; - */ - modelCallId: string; + /** + * groups tool calls that originate from the same model provider call + * + * @generated from field: string model_call_id = 4; + */ + modelCallId: string; }; /** * Describes the message agent.v1.PartialToolCallUpdate. * Use `create(PartialToolCallUpdateSchema)` to create a new message. */ -export const PartialToolCallUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 96); +export const PartialToolCallUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 96); /** * @generated from message agent.v1.ThinkingDeltaUpdate */ export type ThinkingDeltaUpdate = Message<"agent.v1.ThinkingDeltaUpdate"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; }; /** * Describes the message agent.v1.ThinkingDeltaUpdate. * Use `create(ThinkingDeltaUpdateSchema)` to create a new message. */ -export const ThinkingDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 97); +export const ThinkingDeltaUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 97); /** * @generated from message agent.v1.ThinkingCompletedUpdate */ export type ThinkingCompletedUpdate = Message<"agent.v1.ThinkingCompletedUpdate"> & { - /** - * @generated from field: int32 thinking_duration_ms = 1; - */ - thinkingDurationMs: number; + /** + * @generated from field: int32 thinking_duration_ms = 1; + */ + thinkingDurationMs: number; }; /** * Describes the message agent.v1.ThinkingCompletedUpdate. * Use `create(ThinkingCompletedUpdateSchema)` to create a new message. */ -export const ThinkingCompletedUpdateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 98); +export const ThinkingCompletedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 98); /** * @generated from message agent.v1.TokenDeltaUpdate */ export type TokenDeltaUpdate = Message<"agent.v1.TokenDeltaUpdate"> & { - /** - * @generated from field: int32 tokens = 1; - */ - tokens: number; + /** + * @generated from field: int32 tokens = 1; + */ + tokens: number; }; /** * Describes the message agent.v1.TokenDeltaUpdate. * Use `create(TokenDeltaUpdateSchema)` to create a new message. */ -export const TokenDeltaUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 99); +export const TokenDeltaUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 99); /** * @generated from message agent.v1.SummaryUpdate */ export type SummaryUpdate = Message<"agent.v1.SummaryUpdate"> & { - /** - * @generated from field: string summary = 1; - */ - summary: string; + /** + * @generated from field: string summary = 1; + */ + summary: string; }; /** * Describes the message agent.v1.SummaryUpdate. * Use `create(SummaryUpdateSchema)` to create a new message. */ -export const SummaryUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 100); +export const SummaryUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 100); /** * @generated from message agent.v1.SummaryStartedUpdate */ -export type SummaryStartedUpdate = Message<"agent.v1.SummaryStartedUpdate"> & {}; +export type SummaryStartedUpdate = Message<"agent.v1.SummaryStartedUpdate"> & { +}; /** * Describes the message agent.v1.SummaryStartedUpdate. * Use `create(SummaryStartedUpdateSchema)` to create a new message. */ -export const SummaryStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 101); +export const SummaryStartedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 101); /** * @generated from message agent.v1.HeartbeatUpdate */ -export type HeartbeatUpdate = Message<"agent.v1.HeartbeatUpdate"> & {}; +export type HeartbeatUpdate = Message<"agent.v1.HeartbeatUpdate"> & { +}; /** * Describes the message agent.v1.HeartbeatUpdate. * Use `create(HeartbeatUpdateSchema)` to create a new message. */ -export const HeartbeatUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 102); +export const HeartbeatUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 102); /** * @generated from message agent.v1.SummaryCompletedUpdate */ -export type SummaryCompletedUpdate = Message<"agent.v1.SummaryCompletedUpdate"> & {}; +export type SummaryCompletedUpdate = Message<"agent.v1.SummaryCompletedUpdate"> & { +}; /** * Describes the message agent.v1.SummaryCompletedUpdate. * Use `create(SummaryCompletedUpdateSchema)` to create a new message. */ -export const SummaryCompletedUpdateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 103); +export const SummaryCompletedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 103); /** * @generated from message agent.v1.ShellOutputDeltaUpdate */ export type ShellOutputDeltaUpdate = Message<"agent.v1.ShellOutputDeltaUpdate"> & { - /** - * @generated from oneof agent.v1.ShellOutputDeltaUpdate.event - */ - event: - | { - /** - * @generated from field: agent.v1.ShellStreamStdout stdout = 1; - */ - value: ShellStreamStdout; - case: "stdout"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamStderr stderr = 2; - */ - value: ShellStreamStderr; - case: "stderr"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamExit exit = 3; - */ - value: ShellStreamExit; - case: "exit"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamStart start = 4; - */ - value: ShellStreamStart; - case: "start"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ShellOutputDeltaUpdate.event + */ + event: { + /** + * @generated from field: agent.v1.ShellStreamStdout stdout = 1; + */ + value: ShellStreamStdout; + case: "stdout"; + } | { + /** + * @generated from field: agent.v1.ShellStreamStderr stderr = 2; + */ + value: ShellStreamStderr; + case: "stderr"; + } | { + /** + * @generated from field: agent.v1.ShellStreamExit exit = 3; + */ + value: ShellStreamExit; + case: "exit"; + } | { + /** + * @generated from field: agent.v1.ShellStreamStart start = 4; + */ + value: ShellStreamStart; + case: "start"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellOutputDeltaUpdate. * Use `create(ShellOutputDeltaUpdateSchema)` to create a new message. */ -export const ShellOutputDeltaUpdateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 104); +export const ShellOutputDeltaUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 104); /** * @generated from message agent.v1.TurnEndedUpdate */ -export type TurnEndedUpdate = Message<"agent.v1.TurnEndedUpdate"> & {}; +export type TurnEndedUpdate = Message<"agent.v1.TurnEndedUpdate"> & { +}; /** * Describes the message agent.v1.TurnEndedUpdate. * Use `create(TurnEndedUpdateSchema)` to create a new message. */ -export const TurnEndedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 105); +export const TurnEndedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 105); /** * Only: user message appended update @@ -3096,192 +3065,176 @@ export const TurnEndedUpdateSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.UserMessageAppendedUpdate */ export type UserMessageAppendedUpdate = Message<"agent.v1.UserMessageAppendedUpdate"> & { - /** - * @generated from field: agent.v1.UserMessage user_message = 1; - */ - userMessage?: UserMessage; + /** + * @generated from field: agent.v1.UserMessage user_message = 1; + */ + userMessage?: UserMessage | undefined; }; /** * Describes the message agent.v1.UserMessageAppendedUpdate. * Use `create(UserMessageAppendedUpdateSchema)` to create a new message. */ -export const UserMessageAppendedUpdateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 106); +export const UserMessageAppendedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 106); /** * @generated from message agent.v1.StepStartedUpdate */ export type StepStartedUpdate = Message<"agent.v1.StepStartedUpdate"> & { - /** - * @generated from field: uint64 step_id = 1; - */ - stepId: bigint; + /** + * @generated from field: uint64 step_id = 1; + */ + stepId: bigint; }; /** * Describes the message agent.v1.StepStartedUpdate. * Use `create(StepStartedUpdateSchema)` to create a new message. */ -export const StepStartedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 107); +export const StepStartedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 107); /** * @generated from message agent.v1.StepCompletedUpdate */ export type StepCompletedUpdate = Message<"agent.v1.StepCompletedUpdate"> & { - /** - * @generated from field: uint64 step_id = 1; - */ - stepId: bigint; + /** + * @generated from field: uint64 step_id = 1; + */ + stepId: bigint; - /** - * @generated from field: int64 step_duration_ms = 2; - */ - stepDurationMs: bigint; + /** + * @generated from field: int64 step_duration_ms = 2; + */ + stepDurationMs: bigint; }; /** * Describes the message agent.v1.StepCompletedUpdate. * Use `create(StepCompletedUpdateSchema)` to create a new message. */ -export const StepCompletedUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 108); +export const StepCompletedUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 108); /** * @generated from message agent.v1.InteractionUpdate */ export type InteractionUpdate = Message<"agent.v1.InteractionUpdate"> & { - /** - * @generated from oneof agent.v1.InteractionUpdate.message - */ - message: - | { - /** - * @generated from field: agent.v1.TextDeltaUpdate text_delta = 1; - */ - value: TextDeltaUpdate; - case: "textDelta"; - } - | { - /** - * @generated from field: agent.v1.PartialToolCallUpdate partial_tool_call = 7; - */ - value: PartialToolCallUpdate; - case: "partialToolCall"; - } - | { - /** - * @generated from field: agent.v1.ToolCallDeltaUpdate tool_call_delta = 15; - */ - value: ToolCallDeltaUpdate; - case: "toolCallDelta"; - } - | { - /** - * @generated from field: agent.v1.ToolCallStartedUpdate tool_call_started = 2; - */ - value: ToolCallStartedUpdate; - case: "toolCallStarted"; - } - | { - /** - * @generated from field: agent.v1.ToolCallCompletedUpdate tool_call_completed = 3; - */ - value: ToolCallCompletedUpdate; - case: "toolCallCompleted"; - } - | { - /** - * @generated from field: agent.v1.ThinkingDeltaUpdate thinking_delta = 4; - */ - value: ThinkingDeltaUpdate; - case: "thinkingDelta"; - } - | { - /** - * @generated from field: agent.v1.ThinkingCompletedUpdate thinking_completed = 5; - */ - value: ThinkingCompletedUpdate; - case: "thinkingCompleted"; - } - | { - /** - * @generated from field: agent.v1.UserMessageAppendedUpdate user_message_appended = 6; - */ - value: UserMessageAppendedUpdate; - case: "userMessageAppended"; - } - | { - /** - * @generated from field: agent.v1.TokenDeltaUpdate token_delta = 8; - */ - value: TokenDeltaUpdate; - case: "tokenDelta"; - } - | { - /** - * @generated from field: agent.v1.SummaryUpdate summary = 9; - */ - value: SummaryUpdate; - case: "summary"; - } - | { - /** - * @generated from field: agent.v1.SummaryStartedUpdate summary_started = 10; - */ - value: SummaryStartedUpdate; - case: "summaryStarted"; - } - | { - /** - * @generated from field: agent.v1.SummaryCompletedUpdate summary_completed = 11; - */ - value: SummaryCompletedUpdate; - case: "summaryCompleted"; - } - | { - /** - * @generated from field: agent.v1.ShellOutputDeltaUpdate shell_output_delta = 12; - */ - value: ShellOutputDeltaUpdate; - case: "shellOutputDelta"; - } - | { - /** - * @generated from field: agent.v1.HeartbeatUpdate heartbeat = 13; - */ - value: HeartbeatUpdate; - case: "heartbeat"; - } - | { - /** - * @generated from field: agent.v1.TurnEndedUpdate turn_ended = 14; - */ - value: TurnEndedUpdate; - case: "turnEnded"; - } - | { - /** - * @generated from field: agent.v1.StepStartedUpdate step_started = 16; - */ - value: StepStartedUpdate; - case: "stepStarted"; - } - | { - /** - * @generated from field: agent.v1.StepCompletedUpdate step_completed = 17; - */ - value: StepCompletedUpdate; - case: "stepCompleted"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.InteractionUpdate.message + */ + message: { + /** + * @generated from field: agent.v1.TextDeltaUpdate text_delta = 1; + */ + value: TextDeltaUpdate; + case: "textDelta"; + } | { + /** + * @generated from field: agent.v1.PartialToolCallUpdate partial_tool_call = 7; + */ + value: PartialToolCallUpdate; + case: "partialToolCall"; + } | { + /** + * @generated from field: agent.v1.ToolCallDeltaUpdate tool_call_delta = 15; + */ + value: ToolCallDeltaUpdate; + case: "toolCallDelta"; + } | { + /** + * @generated from field: agent.v1.ToolCallStartedUpdate tool_call_started = 2; + */ + value: ToolCallStartedUpdate; + case: "toolCallStarted"; + } | { + /** + * @generated from field: agent.v1.ToolCallCompletedUpdate tool_call_completed = 3; + */ + value: ToolCallCompletedUpdate; + case: "toolCallCompleted"; + } | { + /** + * @generated from field: agent.v1.ThinkingDeltaUpdate thinking_delta = 4; + */ + value: ThinkingDeltaUpdate; + case: "thinkingDelta"; + } | { + /** + * @generated from field: agent.v1.ThinkingCompletedUpdate thinking_completed = 5; + */ + value: ThinkingCompletedUpdate; + case: "thinkingCompleted"; + } | { + /** + * @generated from field: agent.v1.UserMessageAppendedUpdate user_message_appended = 6; + */ + value: UserMessageAppendedUpdate; + case: "userMessageAppended"; + } | { + /** + * @generated from field: agent.v1.TokenDeltaUpdate token_delta = 8; + */ + value: TokenDeltaUpdate; + case: "tokenDelta"; + } | { + /** + * @generated from field: agent.v1.SummaryUpdate summary = 9; + */ + value: SummaryUpdate; + case: "summary"; + } | { + /** + * @generated from field: agent.v1.SummaryStartedUpdate summary_started = 10; + */ + value: SummaryStartedUpdate; + case: "summaryStarted"; + } | { + /** + * @generated from field: agent.v1.SummaryCompletedUpdate summary_completed = 11; + */ + value: SummaryCompletedUpdate; + case: "summaryCompleted"; + } | { + /** + * @generated from field: agent.v1.ShellOutputDeltaUpdate shell_output_delta = 12; + */ + value: ShellOutputDeltaUpdate; + case: "shellOutputDelta"; + } | { + /** + * @generated from field: agent.v1.HeartbeatUpdate heartbeat = 13; + */ + value: HeartbeatUpdate; + case: "heartbeat"; + } | { + /** + * @generated from field: agent.v1.TurnEndedUpdate turn_ended = 14; + */ + value: TurnEndedUpdate; + case: "turnEnded"; + } | { + /** + * @generated from field: agent.v1.StepStartedUpdate step_started = 16; + */ + value: StepStartedUpdate; + case: "stepStarted"; + } | { + /** + * @generated from field: agent.v1.StepCompletedUpdate step_completed = 17; + */ + value: StepCompletedUpdate; + case: "stepCompleted"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionUpdate. * Use `create(InteractionUpdateSchema)` to create a new message. */ -export const InteractionUpdateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 109); +export const InteractionUpdateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 109); /** * Interaction query messages for bidirectional communication @@ -3289,195 +3242,181 @@ export const InteractionUpdateSchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.InteractionQuery */ export type InteractionQuery = Message<"agent.v1.InteractionQuery"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * @generated from oneof agent.v1.InteractionQuery.query - */ - query: - | { - /** - * @generated from field: agent.v1.WebSearchRequestQuery web_search_request_query = 2; - */ - value: WebSearchRequestQuery; - case: "webSearchRequestQuery"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionInteractionQuery ask_question_interaction_query = 3; - */ - value: AskQuestionInteractionQuery; - case: "askQuestionInteractionQuery"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeRequestQuery switch_mode_request_query = 4; - */ - value: SwitchModeRequestQuery; - case: "switchModeRequestQuery"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchRequestQuery exa_search_request_query = 5; - */ - value: ExaSearchRequestQuery; - case: "exaSearchRequestQuery"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchRequestQuery exa_fetch_request_query = 6; - */ - value: ExaFetchRequestQuery; - case: "exaFetchRequestQuery"; - } - | { - /** - * @generated from field: agent.v1.CreatePlanRequestQuery create_plan_request_query = 7; - */ - value: CreatePlanRequestQuery; - case: "createPlanRequestQuery"; - } - | { - /** - * @generated from field: agent.v1.SetupVmEnvironmentArgs setup_vm_environment_args = 8; - */ - value: SetupVmEnvironmentArgs; - case: "setupVmEnvironmentArgs"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.InteractionQuery.query + */ + query: { + /** + * @generated from field: agent.v1.WebSearchRequestQuery web_search_request_query = 2; + */ + value: WebSearchRequestQuery; + case: "webSearchRequestQuery"; + } | { + /** + * @generated from field: agent.v1.AskQuestionInteractionQuery ask_question_interaction_query = 3; + */ + value: AskQuestionInteractionQuery; + case: "askQuestionInteractionQuery"; + } | { + /** + * @generated from field: agent.v1.SwitchModeRequestQuery switch_mode_request_query = 4; + */ + value: SwitchModeRequestQuery; + case: "switchModeRequestQuery"; + } | { + /** + * @generated from field: agent.v1.ExaSearchRequestQuery exa_search_request_query = 5; + */ + value: ExaSearchRequestQuery; + case: "exaSearchRequestQuery"; + } | { + /** + * @generated from field: agent.v1.ExaFetchRequestQuery exa_fetch_request_query = 6; + */ + value: ExaFetchRequestQuery; + case: "exaFetchRequestQuery"; + } | { + /** + * @generated from field: agent.v1.CreatePlanRequestQuery create_plan_request_query = 7; + */ + value: CreatePlanRequestQuery; + case: "createPlanRequestQuery"; + } | { + /** + * @generated from field: agent.v1.SetupVmEnvironmentArgs setup_vm_environment_args = 8; + */ + value: SetupVmEnvironmentArgs; + case: "setupVmEnvironmentArgs"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionQuery. * Use `create(InteractionQuerySchema)` to create a new message. */ -export const InteractionQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 110); +export const InteractionQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 110); /** * @generated from message agent.v1.InteractionResponse */ export type InteractionResponse = Message<"agent.v1.InteractionResponse"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * @generated from oneof agent.v1.InteractionResponse.result - */ - result: - | { - /** - * @generated from field: agent.v1.WebSearchRequestResponse web_search_request_response = 2; - */ - value: WebSearchRequestResponse; - case: "webSearchRequestResponse"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionInteractionResponse ask_question_interaction_response = 3; - */ - value: AskQuestionInteractionResponse; - case: "askQuestionInteractionResponse"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeRequestResponse switch_mode_request_response = 4; - */ - value: SwitchModeRequestResponse; - case: "switchModeRequestResponse"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchRequestResponse exa_search_request_response = 5; - */ - value: ExaSearchRequestResponse; - case: "exaSearchRequestResponse"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchRequestResponse exa_fetch_request_response = 6; - */ - value: ExaFetchRequestResponse; - case: "exaFetchRequestResponse"; - } - | { - /** - * @generated from field: agent.v1.CreatePlanRequestResponse create_plan_request_response = 7; - */ - value: CreatePlanRequestResponse; - case: "createPlanRequestResponse"; - } - | { - /** - * @generated from field: agent.v1.SetupVmEnvironmentResult setup_vm_environment_result = 8; - */ - value: SetupVmEnvironmentResult; - case: "setupVmEnvironmentResult"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.InteractionResponse.result + */ + result: { + /** + * @generated from field: agent.v1.WebSearchRequestResponse web_search_request_response = 2; + */ + value: WebSearchRequestResponse; + case: "webSearchRequestResponse"; + } | { + /** + * @generated from field: agent.v1.AskQuestionInteractionResponse ask_question_interaction_response = 3; + */ + value: AskQuestionInteractionResponse; + case: "askQuestionInteractionResponse"; + } | { + /** + * @generated from field: agent.v1.SwitchModeRequestResponse switch_mode_request_response = 4; + */ + value: SwitchModeRequestResponse; + case: "switchModeRequestResponse"; + } | { + /** + * @generated from field: agent.v1.ExaSearchRequestResponse exa_search_request_response = 5; + */ + value: ExaSearchRequestResponse; + case: "exaSearchRequestResponse"; + } | { + /** + * @generated from field: agent.v1.ExaFetchRequestResponse exa_fetch_request_response = 6; + */ + value: ExaFetchRequestResponse; + case: "exaFetchRequestResponse"; + } | { + /** + * @generated from field: agent.v1.CreatePlanRequestResponse create_plan_request_response = 7; + */ + value: CreatePlanRequestResponse; + case: "createPlanRequestResponse"; + } | { + /** + * @generated from field: agent.v1.SetupVmEnvironmentResult setup_vm_environment_result = 8; + */ + value: SetupVmEnvironmentResult; + case: "setupVmEnvironmentResult"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InteractionResponse. * Use `create(InteractionResponseSchema)` to create a new message. */ -export const InteractionResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 111); +export const InteractionResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 111); /** * @generated from message agent.v1.AskQuestionInteractionQuery */ export type AskQuestionInteractionQuery = Message<"agent.v1.AskQuestionInteractionQuery"> & { - /** - * @generated from field: agent.v1.AskQuestionArgs args = 1; - */ - args?: AskQuestionArgs; + /** + * @generated from field: agent.v1.AskQuestionArgs args = 1; + */ + args?: AskQuestionArgs | undefined; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.AskQuestionInteractionQuery. * Use `create(AskQuestionInteractionQuerySchema)` to create a new message. */ -export const AskQuestionInteractionQuerySchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 112); +export const AskQuestionInteractionQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 112); /** * @generated from message agent.v1.AskQuestionInteractionResponse */ export type AskQuestionInteractionResponse = Message<"agent.v1.AskQuestionInteractionResponse"> & { - /** - * @generated from field: agent.v1.AskQuestionResult result = 1; - */ - result?: AskQuestionResult; + /** + * @generated from field: agent.v1.AskQuestionResult result = 1; + */ + result?: AskQuestionResult | undefined; }; /** * Describes the message agent.v1.AskQuestionInteractionResponse. * Use `create(AskQuestionInteractionResponseSchema)` to create a new message. */ -export const AskQuestionInteractionResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 113); +export const AskQuestionInteractionResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 113); /** * @generated from message agent.v1.ClientHeartbeat */ -export type ClientHeartbeat = Message<"agent.v1.ClientHeartbeat"> & {}; +export type ClientHeartbeat = Message<"agent.v1.ClientHeartbeat"> & { +}; /** * Describes the message agent.v1.ClientHeartbeat. * Use `create(ClientHeartbeatSchema)` to create a new message. */ -export const ClientHeartbeatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 114); +export const ClientHeartbeatSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 114); /** * Prewarm request - sent before the actual action to prepare the backend Contains all config needed for auth, model routing, and session building The actual ConversationAction is sent separately after prewarming completes @@ -3485,235 +3424,220 @@ export const ClientHeartbeatSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.PrewarmRequest */ export type PrewarmRequest = Message<"agent.v1.PrewarmRequest"> & { - /** - * @generated from field: agent.v1.ModelDetails model_details = 1; - */ - modelDetails?: ModelDetails; + /** + * @generated from field: agent.v1.ModelDetails model_details = 1; + */ + modelDetails?: ModelDetails | undefined; - /** - * @generated from field: optional agent.v1.RequestedModel requested_model = 9; - */ - requestedModel?: RequestedModel; + /** + * @generated from field: optional agent.v1.RequestedModel requested_model = 9; + */ + requestedModel?: RequestedModel | undefined; - /** - * @generated from field: optional string conversation_id = 2; - */ - conversationId?: string; + /** + * @generated from field: optional string conversation_id = 2; + */ + conversationId?: string | undefined; - /** - * @generated from field: agent.v1.ConversationStateStructure conversation_state = 3; - */ - conversationState?: ConversationStateStructure; + /** + * @generated from field: agent.v1.ConversationStateStructure conversation_state = 3; + */ + conversationState?: ConversationStateStructure | undefined; - /** - * @generated from field: agent.v1.McpTools mcp_tools = 4; - */ - mcpTools?: McpTools; + /** + * @generated from field: agent.v1.McpTools mcp_tools = 4; + */ + mcpTools?: McpTools | undefined; - /** - * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 5; - */ - mcpFileSystemOptions?: McpFileSystemOptions; + /** + * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 5; + */ + mcpFileSystemOptions?: McpFileSystemOptions | undefined; - /** - * Best-of-N context for usage billing (same fields as UserMessage) - * - * @generated from field: optional string best_of_n_group_id = 6; - */ - bestOfNGroupId?: string; + /** + * Best-of-N context for usage billing (same fields as UserMessage) + * + * @generated from field: optional string best_of_n_group_id = 6; + */ + bestOfNGroupId?: string | undefined; - /** - * @generated from field: optional bool try_use_best_of_n_promotion = 7; - */ - tryUseBestOfNPromotion?: boolean; + /** + * @generated from field: optional bool try_use_best_of_n_promotion = 7; + */ + tryUseBestOfNPromotion?: boolean | undefined; - /** - * Custom system prompt override. Allowlisted for specific teams only. - * - * @generated from field: optional string custom_system_prompt = 8; - */ - customSystemPrompt?: string; + /** + * Custom system prompt override. Allowlisted for specific teams only. + * + * @generated from field: optional string custom_system_prompt = 8; + */ + customSystemPrompt?: string | undefined; }; /** * Describes the message agent.v1.PrewarmRequest. * Use `create(PrewarmRequestSchema)` to create a new message. */ -export const PrewarmRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 115); +export const PrewarmRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 115); /** * @generated from message agent.v1.ExecServerAbort */ export type ExecServerAbort = Message<"agent.v1.ExecServerAbort"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; }; /** * Describes the message agent.v1.ExecServerAbort. * Use `create(ExecServerAbortSchema)` to create a new message. */ -export const ExecServerAbortSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 116); +export const ExecServerAbortSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 116); /** * @generated from message agent.v1.ExecServerControlMessage */ export type ExecServerControlMessage = Message<"agent.v1.ExecServerControlMessage"> & { - /** - * @generated from oneof agent.v1.ExecServerControlMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.ExecServerAbort abort = 1; - */ - value: ExecServerAbort; - case: "abort"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExecServerControlMessage.message + */ + message: { + /** + * @generated from field: agent.v1.ExecServerAbort abort = 1; + */ + value: ExecServerAbort; + case: "abort"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecServerControlMessage. * Use `create(ExecServerControlMessageSchema)` to create a new message. */ -export const ExecServerControlMessageSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 117); +export const ExecServerControlMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 117); /** * @generated from message agent.v1.AgentClientMessage */ export type AgentClientMessage = Message<"agent.v1.AgentClientMessage"> & { - /** - * @generated from oneof agent.v1.AgentClientMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.AgentRunRequest run_request = 1; - */ - value: AgentRunRequest; - case: "runRequest"; - } - | { - /** - * @generated from field: agent.v1.ExecClientMessage exec_client_message = 2; - */ - value: ExecClientMessage; - case: "execClientMessage"; - } - | { - /** - * @generated from field: agent.v1.ExecClientControlMessage exec_client_control_message = 5; - */ - value: ExecClientControlMessage; - case: "execClientControlMessage"; - } - | { - /** - * @generated from field: agent.v1.KvClientMessage kv_client_message = 3; - */ - value: KvClientMessage; - case: "kvClientMessage"; - } - | { - /** - * @generated from field: agent.v1.ConversationAction conversation_action = 4; - */ - value: ConversationAction; - case: "conversationAction"; - } - | { - /** - * @generated from field: agent.v1.InteractionResponse interaction_response = 6; - */ - value: InteractionResponse; - case: "interactionResponse"; - } - | { - /** - * @generated from field: agent.v1.ClientHeartbeat client_heartbeat = 7; - */ - value: ClientHeartbeat; - case: "clientHeartbeat"; - } - | { - /** - * @generated from field: agent.v1.PrewarmRequest prewarm_request = 8; - */ - value: PrewarmRequest; - case: "prewarmRequest"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.AgentClientMessage.message + */ + message: { + /** + * @generated from field: agent.v1.AgentRunRequest run_request = 1; + */ + value: AgentRunRequest; + case: "runRequest"; + } | { + /** + * @generated from field: agent.v1.ExecClientMessage exec_client_message = 2; + */ + value: ExecClientMessage; + case: "execClientMessage"; + } | { + /** + * @generated from field: agent.v1.ExecClientControlMessage exec_client_control_message = 5; + */ + value: ExecClientControlMessage; + case: "execClientControlMessage"; + } | { + /** + * @generated from field: agent.v1.KvClientMessage kv_client_message = 3; + */ + value: KvClientMessage; + case: "kvClientMessage"; + } | { + /** + * @generated from field: agent.v1.ConversationAction conversation_action = 4; + */ + value: ConversationAction; + case: "conversationAction"; + } | { + /** + * @generated from field: agent.v1.InteractionResponse interaction_response = 6; + */ + value: InteractionResponse; + case: "interactionResponse"; + } | { + /** + * @generated from field: agent.v1.ClientHeartbeat client_heartbeat = 7; + */ + value: ClientHeartbeat; + case: "clientHeartbeat"; + } | { + /** + * @generated from field: agent.v1.PrewarmRequest prewarm_request = 8; + */ + value: PrewarmRequest; + case: "prewarmRequest"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AgentClientMessage. * Use `create(AgentClientMessageSchema)` to create a new message. */ -export const AgentClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 118); +export const AgentClientMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 118); /** * @generated from message agent.v1.AgentServerMessage */ export type AgentServerMessage = Message<"agent.v1.AgentServerMessage"> & { - /** - * @generated from oneof agent.v1.AgentServerMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; - */ - value: InteractionUpdate; - case: "interactionUpdate"; - } - | { - /** - * @generated from field: agent.v1.ExecServerMessage exec_server_message = 2; - */ - value: ExecServerMessage; - case: "execServerMessage"; - } - | { - /** - * @generated from field: agent.v1.ExecServerControlMessage exec_server_control_message = 5; - */ - value: ExecServerControlMessage; - case: "execServerControlMessage"; - } - | { - /** - * @generated from field: agent.v1.ConversationStateStructure conversation_checkpoint_update = 3; - */ - value: ConversationStateStructure; - case: "conversationCheckpointUpdate"; - } - | { - /** - * @generated from field: agent.v1.KvServerMessage kv_server_message = 4; - */ - value: KvServerMessage; - case: "kvServerMessage"; - } - | { - /** - * @generated from field: agent.v1.InteractionQuery interaction_query = 7; - */ - value: InteractionQuery; - case: "interactionQuery"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.AgentServerMessage.message + */ + message: { + /** + * @generated from field: agent.v1.InteractionUpdate interaction_update = 1; + */ + value: InteractionUpdate; + case: "interactionUpdate"; + } | { + /** + * @generated from field: agent.v1.ExecServerMessage exec_server_message = 2; + */ + value: ExecServerMessage; + case: "execServerMessage"; + } | { + /** + * @generated from field: agent.v1.ExecServerControlMessage exec_server_control_message = 5; + */ + value: ExecServerControlMessage; + case: "execServerControlMessage"; + } | { + /** + * @generated from field: agent.v1.ConversationStateStructure conversation_checkpoint_update = 3; + */ + value: ConversationStateStructure; + case: "conversationCheckpointUpdate"; + } | { + /** + * @generated from field: agent.v1.KvServerMessage kv_server_message = 4; + */ + value: KvServerMessage; + case: "kvServerMessage"; + } | { + /** + * @generated from field: agent.v1.InteractionQuery interaction_query = 7; + */ + value: InteractionQuery; + case: "interactionQuery"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AgentServerMessage. * Use `create(AgentServerMessageSchema)` to create a new message. */ -export const AgentServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 119); +export const AgentServerMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 119); /** * New unary API for naming an agent from a user message @@ -3721,135 +3645,133 @@ export const AgentServerMessageSchema: GenMessage = /*@__PUR * @generated from message agent.v1.NameAgentRequest */ export type NameAgentRequest = Message<"agent.v1.NameAgentRequest"> & { - /** - * @generated from field: string user_message = 1; - */ - userMessage: string; + /** + * @generated from field: string user_message = 1; + */ + userMessage: string; }; /** * Describes the message agent.v1.NameAgentRequest. * Use `create(NameAgentRequestSchema)` to create a new message. */ -export const NameAgentRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 120); +export const NameAgentRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 120); /** * @generated from message agent.v1.NameAgentResponse */ export type NameAgentResponse = Message<"agent.v1.NameAgentResponse"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; }; /** * Describes the message agent.v1.NameAgentResponse. * Use `create(NameAgentResponseSchema)` to create a new message. */ -export const NameAgentResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 121); +export const NameAgentResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 121); /** * @generated from message agent.v1.GetUsableModelsRequest */ export type GetUsableModelsRequest = Message<"agent.v1.GetUsableModelsRequest"> & { - /** - * Not used right now, but can use to populate info about custom models the user passes in that we don't send down by default - * - * @generated from field: repeated string custom_model_ids = 1; - */ - customModelIds: string[]; + /** + * Not used right now, but can use to populate info about custom models the user passes in that we don't send down by default + * + * @generated from field: repeated string custom_model_ids = 1; + */ + customModelIds: string[]; }; /** * Describes the message agent.v1.GetUsableModelsRequest. * Use `create(GetUsableModelsRequestSchema)` to create a new message. */ -export const GetUsableModelsRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 122); +export const GetUsableModelsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 122); /** * @generated from message agent.v1.GetUsableModelsResponse */ export type GetUsableModelsResponse = Message<"agent.v1.GetUsableModelsResponse"> & { - /** - * @generated from field: repeated agent.v1.ModelDetails models = 1; - */ - models: ModelDetails[]; + /** + * @generated from field: repeated agent.v1.ModelDetails models = 1; + */ + models: ModelDetails[]; }; /** * Describes the message agent.v1.GetUsableModelsResponse. * Use `create(GetUsableModelsResponseSchema)` to create a new message. */ -export const GetUsableModelsResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 123); +export const GetUsableModelsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 123); /** * @generated from message agent.v1.GetDefaultModelForCliRequest */ -export type GetDefaultModelForCliRequest = Message<"agent.v1.GetDefaultModelForCliRequest"> & {}; +export type GetDefaultModelForCliRequest = Message<"agent.v1.GetDefaultModelForCliRequest"> & { +}; /** * Describes the message agent.v1.GetDefaultModelForCliRequest. * Use `create(GetDefaultModelForCliRequestSchema)` to create a new message. */ -export const GetDefaultModelForCliRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 124); +export const GetDefaultModelForCliRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 124); /** * @generated from message agent.v1.GetDefaultModelForCliResponse */ export type GetDefaultModelForCliResponse = Message<"agent.v1.GetDefaultModelForCliResponse"> & { - /** - * @generated from field: agent.v1.ModelDetails model = 1; - */ - model?: ModelDetails; + /** + * @generated from field: agent.v1.ModelDetails model = 1; + */ + model?: ModelDetails | undefined; }; /** * Describes the message agent.v1.GetDefaultModelForCliResponse. * Use `create(GetDefaultModelForCliResponseSchema)` to create a new message. */ -export const GetDefaultModelForCliResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 125); +export const GetDefaultModelForCliResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 125); /** * Internal endpoint: returns all allowed model intents for devs * * @generated from message agent.v1.GetAllowedModelIntentsRequest */ -export type GetAllowedModelIntentsRequest = Message<"agent.v1.GetAllowedModelIntentsRequest"> & {}; +export type GetAllowedModelIntentsRequest = Message<"agent.v1.GetAllowedModelIntentsRequest"> & { +}; /** * Describes the message agent.v1.GetAllowedModelIntentsRequest. * Use `create(GetAllowedModelIntentsRequestSchema)` to create a new message. */ -export const GetAllowedModelIntentsRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 126); +export const GetAllowedModelIntentsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 126); /** * @generated from message agent.v1.GetAllowedModelIntentsResponse */ export type GetAllowedModelIntentsResponse = Message<"agent.v1.GetAllowedModelIntentsResponse"> & { - /** - * @generated from field: repeated string model_intents = 1; - */ - modelIntents: string[]; + /** + * @generated from field: repeated string model_intents = 1; + */ + modelIntents: string[]; }; /** * Describes the message agent.v1.GetAllowedModelIntentsResponse. * Use `create(GetAllowedModelIntentsResponseSchema)` to create a new message. */ -export const GetAllowedModelIntentsResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 127); +export const GetAllowedModelIntentsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 127); /** * IDE state persistence for clients (CLI / VSCode integration) Mirrors a subset of aiserver.v1.ConversationMessage.IdeEditorsState, but only contains the recently viewed files and avoids any deprecated fields. @@ -3857,512 +3779,547 @@ export const GetAllowedModelIntentsResponseSchema: GenMessage & { - /** - * @generated from field: string relative_path = 1; - */ - relativePath: string; + /** + * @generated from field: string relative_path = 1; + */ + relativePath: string; - /** - * @generated from field: string absolute_path = 2; - */ - absolutePath: string; + /** + * @generated from field: string absolute_path = 2; + */ + absolutePath: string; - /** - * @generated from field: optional bool is_currently_focused = 3; - */ - isCurrentlyFocused?: boolean; + /** + * @generated from field: optional bool is_currently_focused = 3; + */ + isCurrentlyFocused?: boolean | undefined; - /** - * @generated from field: optional int32 current_line_number = 4; - */ - currentLineNumber?: number; + /** + * @generated from field: optional int32 current_line_number = 4; + */ + currentLineNumber?: number | undefined; - /** - * @generated from field: optional string current_line_text = 5; - */ - currentLineText?: string; + /** + * @generated from field: optional string current_line_text = 5; + */ + currentLineText?: string | undefined; - /** - * @generated from field: optional int32 line_count = 6; - */ - lineCount?: number; + /** + * @generated from field: optional int32 line_count = 6; + */ + lineCount?: number | undefined; }; /** * Describes the message agent.v1.IdeEditorsStateFile. * Use `create(IdeEditorsStateFileSchema)` to create a new message. */ -export const IdeEditorsStateFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 128); +export const IdeEditorsStateFileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 128); /** * @generated from message agent.v1.IdeEditorsStateLite */ export type IdeEditorsStateLite = Message<"agent.v1.IdeEditorsStateLite"> & { - /** - * @generated from field: repeated agent.v1.IdeEditorsStateFile recently_viewed_files = 1; - */ - recentlyViewedFiles: IdeEditorsStateFile[]; + /** + * @generated from field: repeated agent.v1.IdeEditorsStateFile recently_viewed_files = 1; + */ + recentlyViewedFiles: IdeEditorsStateFile[]; }; /** * Describes the message agent.v1.IdeEditorsStateLite. * Use `create(IdeEditorsStateLiteSchema)` to create a new message. */ -export const IdeEditorsStateLiteSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 129); +export const IdeEditorsStateLiteSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 129); /** * @generated from message agent.v1.ApplyAgentDiffToolCall */ export type ApplyAgentDiffToolCall = Message<"agent.v1.ApplyAgentDiffToolCall"> & { - /** - * @generated from field: agent.v1.ApplyAgentDiffArgs args = 1; - */ - args?: ApplyAgentDiffArgs; + /** + * @generated from field: agent.v1.ApplyAgentDiffArgs args = 1; + */ + args?: ApplyAgentDiffArgs | undefined; - /** - * @generated from field: agent.v1.ApplyAgentDiffResult result = 2; - */ - result?: ApplyAgentDiffResult; + /** + * @generated from field: agent.v1.ApplyAgentDiffResult result = 2; + */ + result?: ApplyAgentDiffResult | undefined; }; /** * Describes the message agent.v1.ApplyAgentDiffToolCall. * Use `create(ApplyAgentDiffToolCallSchema)` to create a new message. */ -export const ApplyAgentDiffToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 130); +export const ApplyAgentDiffToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 130); /** * @generated from message agent.v1.ApplyAgentDiffArgs */ export type ApplyAgentDiffArgs = Message<"agent.v1.ApplyAgentDiffArgs"> & { - /** - * @generated from field: string agent_id = 1; - */ - agentId: string; + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; }; /** * Describes the message agent.v1.ApplyAgentDiffArgs. * Use `create(ApplyAgentDiffArgsSchema)` to create a new message. */ -export const ApplyAgentDiffArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 131); +export const ApplyAgentDiffArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 131); /** * @generated from message agent.v1.ApplyAgentDiffResult */ export type ApplyAgentDiffResult = Message<"agent.v1.ApplyAgentDiffResult"> & { - /** - * @generated from oneof agent.v1.ApplyAgentDiffResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ApplyAgentDiffSuccess success = 1; - */ - value: ApplyAgentDiffSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ApplyAgentDiffError error = 2; - */ - value: ApplyAgentDiffError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ApplyAgentDiffResult.result + */ + result: { + /** + * @generated from field: agent.v1.ApplyAgentDiffSuccess success = 1; + */ + value: ApplyAgentDiffSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ApplyAgentDiffError error = 2; + */ + value: ApplyAgentDiffError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ApplyAgentDiffResult. * Use `create(ApplyAgentDiffResultSchema)` to create a new message. */ -export const ApplyAgentDiffResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 132); +export const ApplyAgentDiffResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 132); /** * @generated from message agent.v1.ApplyAgentDiffSuccess */ export type ApplyAgentDiffSuccess = Message<"agent.v1.ApplyAgentDiffSuccess"> & { - /** - * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 1; - */ - appliedChanges: AppliedAgentChange[]; + /** + * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 1; + */ + appliedChanges: AppliedAgentChange[]; }; /** * Describes the message agent.v1.ApplyAgentDiffSuccess. * Use `create(ApplyAgentDiffSuccessSchema)` to create a new message. */ -export const ApplyAgentDiffSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 133); +export const ApplyAgentDiffSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 133); /** * @generated from message agent.v1.AppliedAgentChange */ export type AppliedAgentChange = Message<"agent.v1.AppliedAgentChange"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: int32 change_type = 2; - */ - changeType: number; + /** + * @generated from field: int32 change_type = 2; + */ + changeType: number; - /** - * @generated from field: optional string before_content = 3; - */ - beforeContent?: string; + /** + * @generated from field: optional string before_content = 3; + */ + beforeContent?: string | undefined; - /** - * @generated from field: optional string after_content = 4; - */ - afterContent?: string; + /** + * @generated from field: optional string after_content = 4; + */ + afterContent?: string | undefined; - /** - * @generated from field: optional string error = 5; - */ - error?: string; + /** + * @generated from field: optional string error = 5; + */ + error?: string | undefined; - /** - * Detailed result message from the execution (e.g., "Successfully deleted file: path (123 bytes)") - * - * @generated from field: optional string message_for_model = 6; - */ - messageForModel?: string; + /** + * Detailed result message from the execution (e.g., "Successfully deleted file: path (123 bytes)") + * + * @generated from field: optional string message_for_model = 6; + */ + messageForModel?: string | undefined; }; /** * Describes the message agent.v1.AppliedAgentChange. * Use `create(AppliedAgentChangeSchema)` to create a new message. */ -export const AppliedAgentChangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 134); +export const AppliedAgentChangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 134); /** * @generated from message agent.v1.ApplyAgentDiffError */ export type ApplyAgentDiffError = Message<"agent.v1.ApplyAgentDiffError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; - /** - * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 2; - */ - appliedChanges: AppliedAgentChange[]; + /** + * @generated from field: repeated agent.v1.AppliedAgentChange applied_changes = 2; + */ + appliedChanges: AppliedAgentChange[]; }; /** * Describes the message agent.v1.ApplyAgentDiffError. * Use `create(ApplyAgentDiffErrorSchema)` to create a new message. */ -export const ApplyAgentDiffErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 135); +export const ApplyAgentDiffErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 135); /** * @generated from message agent.v1.AskQuestionToolCall */ export type AskQuestionToolCall = Message<"agent.v1.AskQuestionToolCall"> & { - /** - * @generated from field: agent.v1.AskQuestionArgs args = 1; - */ - args?: AskQuestionArgs; + /** + * @generated from field: agent.v1.AskQuestionArgs args = 1; + */ + args?: AskQuestionArgs | undefined; - /** - * @generated from field: agent.v1.AskQuestionResult result = 2; - */ - result?: AskQuestionResult; + /** + * @generated from field: agent.v1.AskQuestionResult result = 2; + */ + result?: AskQuestionResult | undefined; }; /** * Describes the message agent.v1.AskQuestionToolCall. * Use `create(AskQuestionToolCallSchema)` to create a new message. */ -export const AskQuestionToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 136); +export const AskQuestionToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 136); /** * @generated from message agent.v1.AskQuestionArgs */ export type AskQuestionArgs = Message<"agent.v1.AskQuestionArgs"> & { - /** - * optional form title - * - * @generated from field: string title = 1; - */ - title: string; + /** + * optional form title + * + * @generated from field: string title = 1; + */ + title: string; - /** - * 1+ questions - * - * @generated from field: repeated agent.v1.AskQuestionArgs_Question questions = 2; - */ - questions: AskQuestionArgs_Question[]; + /** + * 1+ questions + * + * @generated from field: repeated agent.v1.AskQuestionArgs_Question questions = 2; + */ + questions: AskQuestionArgs_Question[]; - /** - * if true, return immediately with async marker instead of blocking - * - * @generated from field: bool run_async = 5; - */ - runAsync: boolean; + /** + * if true, return immediately with async marker instead of blocking + * + * @generated from field: bool run_async = 5; + */ + runAsync: boolean; - /** - * if set, indicates this is a synthetic completion for the original async tool call with this ID - * - * @generated from field: string async_original_tool_call_id = 6; - */ - asyncOriginalToolCallId: string; + /** + * if set, indicates this is a synthetic completion for the original async tool call with this ID + * + * @generated from field: string async_original_tool_call_id = 6; + */ + asyncOriginalToolCallId: string; }; /** * Describes the message agent.v1.AskQuestionArgs. * Use `create(AskQuestionArgsSchema)` to create a new message. */ -export const AskQuestionArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 137); +export const AskQuestionArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 137); /** * @generated from message agent.v1.AskQuestionArgs_Question */ export type AskQuestionArgs_Question = Message<"agent.v1.AskQuestionArgs_Question"> & { - /** - * unique, model-provided - * - * @generated from field: string id = 1; - */ - id: string; + /** + * unique, model-provided + * + * @generated from field: string id = 1; + */ + id: string; - /** - * the question text - * - * @generated from field: string prompt = 2; - */ - prompt: string; + /** + * the question text + * + * @generated from field: string prompt = 2; + */ + prompt: string; - /** - * choices - * - * @generated from field: repeated agent.v1.AskQuestionArgs_Option options = 3; - */ - options: AskQuestionArgs_Option[]; + /** + * choices + * + * @generated from field: repeated agent.v1.AskQuestionArgs_Option options = 3; + */ + options: AskQuestionArgs_Option[]; - /** - * multi-select vs single-select - * - * @generated from field: bool allow_multiple = 4; - */ - allowMultiple: boolean; + /** + * multi-select vs single-select + * + * @generated from field: bool allow_multiple = 4; + */ + allowMultiple: boolean; }; /** * Describes the message agent.v1.AskQuestionArgs_Question. * Use `create(AskQuestionArgs_QuestionSchema)` to create a new message. */ -export const AskQuestionArgs_QuestionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 138); +export const AskQuestionArgs_QuestionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 138); /** * @generated from message agent.v1.AskQuestionArgs_Option */ export type AskQuestionArgs_Option = Message<"agent.v1.AskQuestionArgs_Option"> & { - /** - * stable option id - * - * @generated from field: string id = 1; - */ - id: string; + /** + * stable option id + * + * @generated from field: string id = 1; + */ + id: string; - /** - * display text - * - * @generated from field: string label = 2; - */ - label: string; + /** + * display text + * + * @generated from field: string label = 2; + */ + label: string; }; /** * Describes the message agent.v1.AskQuestionArgs_Option. * Use `create(AskQuestionArgs_OptionSchema)` to create a new message. */ -export const AskQuestionArgs_OptionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 139); +export const AskQuestionArgs_OptionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 139); /** * Marker indicating that questions have been sent asynchronously Answers will arrive later as a separate ask_question tool call * * @generated from message agent.v1.AskQuestionAsync */ -export type AskQuestionAsync = Message<"agent.v1.AskQuestionAsync"> & {}; +export type AskQuestionAsync = Message<"agent.v1.AskQuestionAsync"> & { +}; /** * Describes the message agent.v1.AskQuestionAsync. * Use `create(AskQuestionAsyncSchema)` to create a new message. */ -export const AskQuestionAsyncSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 140); +export const AskQuestionAsyncSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 140); /** * @generated from message agent.v1.AskQuestionResult */ export type AskQuestionResult = Message<"agent.v1.AskQuestionResult"> & { - /** - * @generated from oneof agent.v1.AskQuestionResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.AskQuestionSuccess success = 1; - */ - value: AskQuestionSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionError error = 2; - */ - value: AskQuestionError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionRejected rejected = 3; - */ - value: AskQuestionRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.AskQuestionAsync async = 4; - */ - value: AskQuestionAsync; - case: "async"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.AskQuestionResult.result + */ + result: { + /** + * @generated from field: agent.v1.AskQuestionSuccess success = 1; + */ + value: AskQuestionSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.AskQuestionError error = 2; + */ + value: AskQuestionError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.AskQuestionRejected rejected = 3; + */ + value: AskQuestionRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.AskQuestionAsync async = 4; + */ + value: AskQuestionAsync; + case: "async"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.AskQuestionResult. * Use `create(AskQuestionResultSchema)` to create a new message. */ -export const AskQuestionResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 141); +export const AskQuestionResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 141); /** * @generated from message agent.v1.AskQuestionSuccess */ export type AskQuestionSuccess = Message<"agent.v1.AskQuestionSuccess"> & { - /** - * @generated from field: repeated agent.v1.AskQuestionSuccess_Answer answers = 1; - */ - answers: AskQuestionSuccess_Answer[]; + /** + * @generated from field: repeated agent.v1.AskQuestionSuccess_Answer answers = 1; + */ + answers: AskQuestionSuccess_Answer[]; }; /** * Describes the message agent.v1.AskQuestionSuccess. * Use `create(AskQuestionSuccessSchema)` to create a new message. */ -export const AskQuestionSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 142); +export const AskQuestionSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 142); /** * @generated from message agent.v1.AskQuestionSuccess_Answer */ export type AskQuestionSuccess_Answer = Message<"agent.v1.AskQuestionSuccess_Answer"> & { - /** - * @generated from field: string question_id = 1; - */ - questionId: string; + /** + * @generated from field: string question_id = 1; + */ + questionId: string; - /** - * empty if unanswered - * - * @generated from field: repeated string selected_option_ids = 2; - */ - selectedOptionIds: string[]; + /** + * empty if unanswered + * + * @generated from field: repeated string selected_option_ids = 2; + */ + selectedOptionIds: string[]; }; /** * Describes the message agent.v1.AskQuestionSuccess_Answer. * Use `create(AskQuestionSuccess_AnswerSchema)` to create a new message. */ -export const AskQuestionSuccess_AnswerSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 143); +export const AskQuestionSuccess_AnswerSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 143); /** * @generated from message agent.v1.AskQuestionError */ export type AskQuestionError = Message<"agent.v1.AskQuestionError"> & { - /** - * @generated from field: string error_message = 1; - */ - errorMessage: string; + /** + * @generated from field: string error_message = 1; + */ + errorMessage: string; }; /** * Describes the message agent.v1.AskQuestionError. * Use `create(AskQuestionErrorSchema)` to create a new message. */ -export const AskQuestionErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 144); +export const AskQuestionErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 144); /** * @generated from message agent.v1.AskQuestionRejected */ export type AskQuestionRejected = Message<"agent.v1.AskQuestionRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.AskQuestionRejected. * Use `create(AskQuestionRejectedSchema)` to create a new message. */ -export const AskQuestionRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 145); +export const AskQuestionRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 145); /** * @generated from message agent.v1.BackgroundShellSpawnArgs */ export type BackgroundShellSpawnArgs = Message<"agent.v1.BackgroundShellSpawnArgs"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: string tool_call_id = 3; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 3; + */ + toolCallId: string; - /** - * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 4; - */ - parsingResult?: ShellCommandParsingResult; + /** + * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 4; + */ + parsingResult?: ShellCommandParsingResult | undefined; - /** - * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 5; - */ - sandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 5; + */ + sandboxPolicy?: SandboxPolicy | undefined; - /** - * @generated from field: bool enable_write_shell_stdin_tool = 6; - */ - enableWriteShellStdinTool: boolean; + /** + * @generated from field: bool enable_write_shell_stdin_tool = 6; + */ + enableWriteShellStdinTool: boolean; + + /** + * @generated from field: optional string description = 7; + */ + description?: string | undefined; + + /** + * @generated from field: optional agent.v1.CommandClassifierResult classifier_result = 8; + */ + classifierResult?: CommandClassifierResult | undefined; + + /** + * @generated from field: optional agent.v1.ShellOutputNotificationConfig output_notification = 9; + */ + outputNotification?: ShellOutputNotificationConfig | undefined; + + /** + * @generated from field: optional agent.v1.SmartModeApproval smart_mode_approval = 10; + */ + smartModeApproval?: SmartModeApproval | undefined; + + /** + * @generated from field: optional agent.v1.ShellHookApprovalRequirement hook_approval_requirement = 11; + */ + hookApprovalRequirement?: ShellHookApprovalRequirement | undefined; + + /** + * @generated from field: bool skip_approval = 12; + */ + skipApproval: boolean; + + /** + * @generated from field: optional string conversation_id = 13; + */ + conversationId?: string | undefined; }; /** * Describes the message agent.v1.BackgroundShellSpawnArgs. * Use `create(BackgroundShellSpawnArgsSchema)` to create a new message. */ -export const BackgroundShellSpawnArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 146); +export const BackgroundShellSpawnArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 146); /** * Result of spawning a background shell @@ -4370,225 +4327,215 @@ export const BackgroundShellSpawnArgsSchema: GenMessage & { - /** - * @generated from oneof agent.v1.BackgroundShellSpawnResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.BackgroundShellSpawnSuccess success = 1; - */ - value: BackgroundShellSpawnSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.BackgroundShellSpawnError error = 2; - */ - value: BackgroundShellSpawnError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ShellRejected rejected = 3; - */ - value: ShellRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 4; - */ - value: ShellPermissionDenied; - case: "permissionDenied"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.BackgroundShellSpawnResult.result + */ + result: { + /** + * @generated from field: agent.v1.BackgroundShellSpawnSuccess success = 1; + */ + value: BackgroundShellSpawnSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.BackgroundShellSpawnError error = 2; + */ + value: BackgroundShellSpawnError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ShellRejected rejected = 3; + */ + value: ShellRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 4; + */ + value: ShellPermissionDenied; + case: "permissionDenied"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.BackgroundShellSpawnResult. * Use `create(BackgroundShellSpawnResultSchema)` to create a new message. */ -export const BackgroundShellSpawnResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 147); +export const BackgroundShellSpawnResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 147); /** * @generated from message agent.v1.BackgroundShellSpawnSuccess */ export type BackgroundShellSpawnSuccess = Message<"agent.v1.BackgroundShellSpawnSuccess"> & { - /** - * @generated from field: uint32 shell_id = 1; - */ - shellId: number; + /** + * @generated from field: uint32 shell_id = 1; + */ + shellId: number; - /** - * @generated from field: string command = 2; - */ - command: string; + /** + * @generated from field: string command = 2; + */ + command: string; - /** - * @generated from field: string working_directory = 3; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 3; + */ + workingDirectory: string; - /** - * Process ID of the spawned shell - * - * @generated from field: optional uint32 pid = 4; - */ - pid?: number; + /** + * Process ID of the spawned shell + * + * @generated from field: optional uint32 pid = 4; + */ + pid?: number | undefined; }; /** * Describes the message agent.v1.BackgroundShellSpawnSuccess. * Use `create(BackgroundShellSpawnSuccessSchema)` to create a new message. */ -export const BackgroundShellSpawnSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 148); +export const BackgroundShellSpawnSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 148); /** * @generated from message agent.v1.BackgroundShellSpawnError */ export type BackgroundShellSpawnError = Message<"agent.v1.BackgroundShellSpawnError"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: string error = 3; - */ - error: string; + /** + * @generated from field: string error = 3; + */ + error: string; }; /** * Describes the message agent.v1.BackgroundShellSpawnError. * Use `create(BackgroundShellSpawnErrorSchema)` to create a new message. */ -export const BackgroundShellSpawnErrorSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 149); +export const BackgroundShellSpawnErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 149); /** * @generated from message agent.v1.WriteShellStdinArgs */ export type WriteShellStdinArgs = Message<"agent.v1.WriteShellStdinArgs"> & { - /** - * @generated from field: uint32 shell_id = 1; - */ - shellId: number; + /** + * @generated from field: uint32 shell_id = 1; + */ + shellId: number; - /** - * @generated from field: string chars = 2; - */ - chars: string; + /** + * @generated from field: string chars = 2; + */ + chars: string; }; /** * Describes the message agent.v1.WriteShellStdinArgs. * Use `create(WriteShellStdinArgsSchema)` to create a new message. */ -export const WriteShellStdinArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 150); +export const WriteShellStdinArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 150); /** * @generated from message agent.v1.WriteShellStdinResult */ export type WriteShellStdinResult = Message<"agent.v1.WriteShellStdinResult"> & { - /** - * @generated from oneof agent.v1.WriteShellStdinResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.WriteShellStdinSuccess success = 1; - */ - value: WriteShellStdinSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.WriteShellStdinError error = 2; - */ - value: WriteShellStdinError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.WriteShellStdinResult.result + */ + result: { + /** + * @generated from field: agent.v1.WriteShellStdinSuccess success = 1; + */ + value: WriteShellStdinSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.WriteShellStdinError error = 2; + */ + value: WriteShellStdinError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WriteShellStdinResult. * Use `create(WriteShellStdinResultSchema)` to create a new message. */ -export const WriteShellStdinResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 151); +export const WriteShellStdinResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 151); /** * @generated from message agent.v1.WriteShellStdinSuccess */ export type WriteShellStdinSuccess = Message<"agent.v1.WriteShellStdinSuccess"> & { - /** - * @generated from field: uint32 shell_id = 1; - */ - shellId: number; + /** + * @generated from field: uint32 shell_id = 1; + */ + shellId: number; - /** - * @generated from field: uint32 terminal_file_length_before_input_written = 2; - */ - terminalFileLengthBeforeInputWritten: number; + /** + * @generated from field: uint32 terminal_file_length_before_input_written = 2; + */ + terminalFileLengthBeforeInputWritten: number; }; /** * Describes the message agent.v1.WriteShellStdinSuccess. * Use `create(WriteShellStdinSuccessSchema)` to create a new message. */ -export const WriteShellStdinSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 152); +export const WriteShellStdinSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 152); /** * @generated from message agent.v1.WriteShellStdinError */ export type WriteShellStdinError = Message<"agent.v1.WriteShellStdinError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.WriteShellStdinError. * Use `create(WriteShellStdinErrorSchema)` to create a new message. */ -export const WriteShellStdinErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 153); +export const WriteShellStdinErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 153); /** * @generated from message agent.v1.Coordinate */ export type Coordinate = Message<"agent.v1.Coordinate"> & { - /** - * @generated from field: int32 x = 1; - */ - x: number; + /** + * @generated from field: int32 x = 1; + */ + x: number; - /** - * @generated from field: int32 y = 2; - */ - y: number; + /** + * @generated from field: int32 y = 2; + */ + y: number; }; /** * Describes the message agent.v1.Coordinate. * Use `create(CoordinateSchema)` to create a new message. */ -export const CoordinateSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 154); +export const CoordinateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 154); /** * Arguments for the computer-use tool @@ -4596,22 +4543,23 @@ export const CoordinateSchema: GenMessage = /*@__PURE__*/ messageDes * @generated from message agent.v1.ComputerUseArgs */ export type ComputerUseArgs = Message<"agent.v1.ComputerUseArgs"> & { - /** - * @generated from field: string tool_call_id = 1; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 1; + */ + toolCallId: string; - /** - * @generated from field: repeated agent.v1.ComputerUseAction actions = 2; - */ - actions: ComputerUseAction[]; + /** + * @generated from field: repeated agent.v1.ComputerUseAction actions = 2; + */ + actions: ComputerUseAction[]; }; /** * Describes the message agent.v1.ComputerUseArgs. * Use `create(ComputerUseArgsSchema)` to create a new message. */ -export const ComputerUseArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 155); +export const ComputerUseArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 155); /** * A single computer-use action. This is our internal canonical representation. Provider-specific formats are converted to this by adapters. @@ -4619,95 +4567,84 @@ export const ComputerUseArgsSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.ComputerUseAction */ export type ComputerUseAction = Message<"agent.v1.ComputerUseAction"> & { - /** - * @generated from oneof agent.v1.ComputerUseAction.action - */ - action: - | { - /** - * @generated from field: agent.v1.MouseMoveAction mouse_move = 1; - */ - value: MouseMoveAction; - case: "mouseMove"; - } - | { - /** - * @generated from field: agent.v1.ClickAction click = 2; - */ - value: ClickAction; - case: "click"; - } - | { - /** - * @generated from field: agent.v1.MouseDownAction mouse_down = 3; - */ - value: MouseDownAction; - case: "mouseDown"; - } - | { - /** - * @generated from field: agent.v1.MouseUpAction mouse_up = 4; - */ - value: MouseUpAction; - case: "mouseUp"; - } - | { - /** - * @generated from field: agent.v1.DragAction drag = 5; - */ - value: DragAction; - case: "drag"; - } - | { - /** - * @generated from field: agent.v1.ScrollAction scroll = 6; - */ - value: ScrollAction; - case: "scroll"; - } - | { - /** - * @generated from field: agent.v1.TypeAction type = 7; - */ - value: TypeAction; - case: "type"; - } - | { - /** - * @generated from field: agent.v1.KeyAction key = 8; - */ - value: KeyAction; - case: "key"; - } - | { - /** - * @generated from field: agent.v1.WaitAction wait = 9; - */ - value: WaitAction; - case: "wait"; - } - | { - /** - * @generated from field: agent.v1.ScreenshotAction screenshot = 10; - */ - value: ScreenshotAction; - case: "screenshot"; - } - | { - /** - * @generated from field: agent.v1.CursorPositionAction cursor_position = 11; - */ - value: CursorPositionAction; - case: "cursorPosition"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ComputerUseAction.action + */ + action: { + /** + * @generated from field: agent.v1.MouseMoveAction mouse_move = 1; + */ + value: MouseMoveAction; + case: "mouseMove"; + } | { + /** + * @generated from field: agent.v1.ClickAction click = 2; + */ + value: ClickAction; + case: "click"; + } | { + /** + * @generated from field: agent.v1.MouseDownAction mouse_down = 3; + */ + value: MouseDownAction; + case: "mouseDown"; + } | { + /** + * @generated from field: agent.v1.MouseUpAction mouse_up = 4; + */ + value: MouseUpAction; + case: "mouseUp"; + } | { + /** + * @generated from field: agent.v1.DragAction drag = 5; + */ + value: DragAction; + case: "drag"; + } | { + /** + * @generated from field: agent.v1.ScrollAction scroll = 6; + */ + value: ScrollAction; + case: "scroll"; + } | { + /** + * @generated from field: agent.v1.TypeAction type = 7; + */ + value: TypeAction; + case: "type"; + } | { + /** + * @generated from field: agent.v1.KeyAction key = 8; + */ + value: KeyAction; + case: "key"; + } | { + /** + * @generated from field: agent.v1.WaitAction wait = 9; + */ + value: WaitAction; + case: "wait"; + } | { + /** + * @generated from field: agent.v1.ScreenshotAction screenshot = 10; + */ + value: ScreenshotAction; + case: "screenshot"; + } | { + /** + * @generated from field: agent.v1.CursorPositionAction cursor_position = 11; + */ + value: CursorPositionAction; + case: "cursorPosition"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ComputerUseAction. * Use `create(ComputerUseActionSchema)` to create a new message. */ -export const ComputerUseActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 156); +export const ComputerUseActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 156); /** * Move mouse to coordinate (required) @@ -4715,17 +4652,18 @@ export const ComputerUseActionSchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.MouseMoveAction */ export type MouseMoveAction = Message<"agent.v1.MouseMoveAction"> & { - /** - * @generated from field: agent.v1.Coordinate coordinate = 1; - */ - coordinate?: Coordinate; + /** + * @generated from field: agent.v1.Coordinate coordinate = 1; + */ + coordinate?: Coordinate | undefined; }; /** * Describes the message agent.v1.MouseMoveAction. * Use `create(MouseMoveActionSchema)` to create a new message. */ -export const MouseMoveActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 157); +export const MouseMoveActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 157); /** * Unified click action - coordinate: optional, clicks at current cursor if omitted - button: which mouse button (default: LEFT) - count: click count (1=single, 2=double, 3=triple, default: 1) - modifier_keys: optional, held during click (e.g., "ctrl", "shift", "ctrl+shift") @@ -4733,32 +4671,33 @@ export const MouseMoveActionSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.ClickAction */ export type ClickAction = Message<"agent.v1.ClickAction"> & { - /** - * @generated from field: optional agent.v1.Coordinate coordinate = 1; - */ - coordinate?: Coordinate; + /** + * @generated from field: optional agent.v1.Coordinate coordinate = 1; + */ + coordinate?: Coordinate | undefined; - /** - * @generated from field: int32 button = 2; - */ - button: number; + /** + * @generated from field: int32 button = 2; + */ + button: number; - /** - * @generated from field: int32 count = 3; - */ - count: number; + /** + * @generated from field: int32 count = 3; + */ + count: number; - /** - * @generated from field: optional string modifier_keys = 4; - */ - modifierKeys?: string; + /** + * @generated from field: optional string modifier_keys = 4; + */ + modifierKeys?: string | undefined; }; /** * Describes the message agent.v1.ClickAction. * Use `create(ClickActionSchema)` to create a new message. */ -export const ClickActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 158); +export const ClickActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 158); /** * Press mouse button down (for fine-grained drag control) @@ -4766,17 +4705,18 @@ export const ClickActionSchema: GenMessage = /*@__PURE__*/ messageD * @generated from message agent.v1.MouseDownAction */ export type MouseDownAction = Message<"agent.v1.MouseDownAction"> & { - /** - * @generated from field: int32 button = 1; - */ - button: number; + /** + * @generated from field: int32 button = 1; + */ + button: number; }; /** * Describes the message agent.v1.MouseDownAction. * Use `create(MouseDownActionSchema)` to create a new message. */ -export const MouseDownActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 159); +export const MouseDownActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 159); /** * Release mouse button (for fine-grained drag control) @@ -4784,17 +4724,18 @@ export const MouseDownActionSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.MouseUpAction */ export type MouseUpAction = Message<"agent.v1.MouseUpAction"> & { - /** - * @generated from field: int32 button = 1; - */ - button: number; + /** + * @generated from field: int32 button = 1; + */ + button: number; }; /** * Describes the message agent.v1.MouseUpAction. * Use `create(MouseUpActionSchema)` to create a new message. */ -export const MouseUpActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 160); +export const MouseUpActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 160); /** * Drag action - path of coordinates (at least 2 points: [start, ..., end]) @@ -4802,22 +4743,23 @@ export const MouseUpActionSchema: GenMessage = /*@__PURE__*/ mess * @generated from message agent.v1.DragAction */ export type DragAction = Message<"agent.v1.DragAction"> & { - /** - * @generated from field: repeated agent.v1.Coordinate path = 1; - */ - path: Coordinate[]; + /** + * @generated from field: repeated agent.v1.Coordinate path = 1; + */ + path: Coordinate[]; - /** - * @generated from field: int32 button = 2; - */ - button: number; + /** + * @generated from field: int32 button = 2; + */ + button: number; }; /** * Describes the message agent.v1.DragAction. * Use `create(DragActionSchema)` to create a new message. */ -export const DragActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 161); +export const DragActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 161); /** * Scroll action - coordinate: optional, scrolls at current cursor if omitted - direction: scroll direction (required) - amount: number of scroll "clicks" (default: 3) - modifier_keys: optional, held during scroll (e.g., "ctrl" for zoom) @@ -4825,32 +4767,33 @@ export const DragActionSchema: GenMessage = /*@__PURE__*/ messageDes * @generated from message agent.v1.ScrollAction */ export type ScrollAction = Message<"agent.v1.ScrollAction"> & { - /** - * @generated from field: optional agent.v1.Coordinate coordinate = 1; - */ - coordinate?: Coordinate; + /** + * @generated from field: optional agent.v1.Coordinate coordinate = 1; + */ + coordinate?: Coordinate | undefined; - /** - * @generated from field: int32 direction = 2; - */ - direction: number; + /** + * @generated from field: int32 direction = 2; + */ + direction: number; - /** - * @generated from field: int32 amount = 3; - */ - amount: number; + /** + * @generated from field: int32 amount = 3; + */ + amount: number; - /** - * @generated from field: optional string modifier_keys = 4; - */ - modifierKeys?: string; + /** + * @generated from field: optional string modifier_keys = 4; + */ + modifierKeys?: string | undefined; }; /** * Describes the message agent.v1.ScrollAction. * Use `create(ScrollActionSchema)` to create a new message. */ -export const ScrollActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 162); +export const ScrollActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 162); /** * Type text @@ -4858,17 +4801,18 @@ export const ScrollActionSchema: GenMessage = /*@__PURE__*/ messag * @generated from message agent.v1.TypeAction */ export type TypeAction = Message<"agent.v1.TypeAction"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; }; /** * Describes the message agent.v1.TypeAction. * Use `create(TypeActionSchema)` to create a new message. */ -export const TypeActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 163); +export const TypeActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 163); /** * Press key or key combination (xdotool-style: "ctrl+a", "Return", "Alt+Left") If hold_duration_ms is set, holds the key for that duration @@ -4876,22 +4820,23 @@ export const TypeActionSchema: GenMessage = /*@__PURE__*/ messageDes * @generated from message agent.v1.KeyAction */ export type KeyAction = Message<"agent.v1.KeyAction"> & { - /** - * @generated from field: string key = 1; - */ - key: string; + /** + * @generated from field: string key = 1; + */ + key: string; - /** - * @generated from field: optional int32 hold_duration_ms = 2; - */ - holdDurationMs?: number; + /** + * @generated from field: optional int32 hold_duration_ms = 2; + */ + holdDurationMs?: number | undefined; }; /** * Describes the message agent.v1.KeyAction. * Use `create(KeyActionSchema)` to create a new message. */ -export const KeyActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 164); +export const KeyActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 164); /** * Wait for a duration @@ -4899,43 +4844,48 @@ export const KeyActionSchema: GenMessage = /*@__PURE__*/ messageDesc( * @generated from message agent.v1.WaitAction */ export type WaitAction = Message<"agent.v1.WaitAction"> & { - /** - * @generated from field: int32 duration_ms = 1; - */ - durationMs: number; + /** + * @generated from field: int32 duration_ms = 1; + */ + durationMs: number; }; /** * Describes the message agent.v1.WaitAction. * Use `create(WaitActionSchema)` to create a new message. */ -export const WaitActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 165); +export const WaitActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 165); /** * Take a screenshot * * @generated from message agent.v1.ScreenshotAction */ -export type ScreenshotAction = Message<"agent.v1.ScreenshotAction"> & {}; +export type ScreenshotAction = Message<"agent.v1.ScreenshotAction"> & { +}; /** * Describes the message agent.v1.ScreenshotAction. * Use `create(ScreenshotActionSchema)` to create a new message. */ -export const ScreenshotActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 166); +export const ScreenshotActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 166); /** * Get current cursor position * * @generated from message agent.v1.CursorPositionAction */ -export type CursorPositionAction = Message<"agent.v1.CursorPositionAction"> & {}; +export type CursorPositionAction = Message<"agent.v1.CursorPositionAction"> & { +}; /** * Describes the message agent.v1.CursorPositionAction. * Use `create(CursorPositionActionSchema)` to create a new message. */ -export const CursorPositionActionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 167); +export const CursorPositionActionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 167); /** * Result of computer-use execution @@ -4943,164 +4893,166 @@ export const CursorPositionActionSchema: GenMessage = /*@_ * @generated from message agent.v1.ComputerUseResult */ export type ComputerUseResult = Message<"agent.v1.ComputerUseResult"> & { - /** - * @generated from oneof agent.v1.ComputerUseResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ComputerUseSuccess success = 1; - */ - value: ComputerUseSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ComputerUseError error = 2; - */ - value: ComputerUseError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ComputerUseResult.result + */ + result: { + /** + * @generated from field: agent.v1.ComputerUseSuccess success = 1; + */ + value: ComputerUseSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ComputerUseError error = 2; + */ + value: ComputerUseError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ComputerUseResult. * Use `create(ComputerUseResultSchema)` to create a new message. */ -export const ComputerUseResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 168); +export const ComputerUseResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 168); /** * @generated from message agent.v1.ComputerUseSuccess */ export type ComputerUseSuccess = Message<"agent.v1.ComputerUseSuccess"> & { - /** - * @generated from field: int32 action_count = 1; - */ - actionCount: number; + /** + * @generated from field: int32 action_count = 1; + */ + actionCount: number; - /** - * @generated from field: int32 duration_ms = 2; - */ - durationMs: number; + /** + * @generated from field: int32 duration_ms = 2; + */ + durationMs: number; - /** - * Base64 WebP at API resolution - * - * @generated from field: optional string screenshot = 3; - */ - screenshot?: string; + /** + * Base64 WebP at API resolution + * + * @generated from field: optional string screenshot = 3; + */ + screenshot?: string | undefined; - /** - * @generated from field: optional string log = 4; - */ - log?: string; + /** + * @generated from field: optional string log = 4; + */ + log?: string | undefined; - /** - * @generated from field: optional string screenshot_path = 5; - */ - screenshotPath?: string; + /** + * @generated from field: optional string screenshot_path = 5; + */ + screenshotPath?: string | undefined; - /** - * In API resolution - * - * @generated from field: optional agent.v1.Coordinate cursor_position = 6; - */ - cursorPosition?: Coordinate; + /** + * In API resolution + * + * @generated from field: optional agent.v1.Coordinate cursor_position = 6; + */ + cursorPosition?: Coordinate | undefined; }; /** * Describes the message agent.v1.ComputerUseSuccess. * Use `create(ComputerUseSuccessSchema)` to create a new message. */ -export const ComputerUseSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 169); +export const ComputerUseSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 169); /** * @generated from message agent.v1.ComputerUseError */ export type ComputerUseError = Message<"agent.v1.ComputerUseError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; - /** - * @generated from field: int32 action_count = 2; - */ - actionCount: number; + /** + * @generated from field: int32 action_count = 2; + */ + actionCount: number; - /** - * @generated from field: int32 duration_ms = 3; - */ - durationMs: number; + /** + * @generated from field: int32 duration_ms = 3; + */ + durationMs: number; - /** - * @generated from field: optional string log = 4; - */ - log?: string; + /** + * @generated from field: optional string log = 4; + */ + log?: string | undefined; - /** - * Base64 WebP of screen state at error time - * - * @generated from field: optional string screenshot = 5; - */ - screenshot?: string; + /** + * Base64 WebP of screen state at error time + * + * @generated from field: optional string screenshot = 5; + */ + screenshot?: string | undefined; - /** - * Path where screenshot was saved - * - * @generated from field: optional string screenshot_path = 6; - */ - screenshotPath?: string; + /** + * Path where screenshot was saved + * + * @generated from field: optional string screenshot_path = 6; + */ + screenshotPath?: string | undefined; }; /** * Describes the message agent.v1.ComputerUseError. * Use `create(ComputerUseErrorSchema)` to create a new message. */ -export const ComputerUseErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 170); +export const ComputerUseErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 170); /** * @generated from message agent.v1.ComputerUseToolCall */ export type ComputerUseToolCall = Message<"agent.v1.ComputerUseToolCall"> & { - /** - * @generated from field: agent.v1.ComputerUseArgs args = 1; - */ - args?: ComputerUseArgs; + /** + * @generated from field: agent.v1.ComputerUseArgs args = 1; + */ + args?: ComputerUseArgs | undefined; - /** - * @generated from field: agent.v1.ComputerUseResult result = 2; - */ - result?: ComputerUseResult; + /** + * @generated from field: agent.v1.ComputerUseResult result = 2; + */ + result?: ComputerUseResult | undefined; }; /** * Describes the message agent.v1.ComputerUseToolCall. * Use `create(ComputerUseToolCallSchema)` to create a new message. */ -export const ComputerUseToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 171); +export const ComputerUseToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 171); /** * @generated from message agent.v1.CreatePlanToolCall */ export type CreatePlanToolCall = Message<"agent.v1.CreatePlanToolCall"> & { - /** - * @generated from field: agent.v1.CreatePlanArgs args = 1; - */ - args?: CreatePlanArgs; + /** + * @generated from field: agent.v1.CreatePlanArgs args = 1; + */ + args?: CreatePlanArgs | undefined; - /** - * @generated from field: agent.v1.CreatePlanResult result = 2; - */ - result?: CreatePlanResult; + /** + * @generated from field: agent.v1.CreatePlanResult result = 2; + */ + result?: CreatePlanResult | undefined; }; /** * Describes the message agent.v1.CreatePlanToolCall. * Use `create(CreatePlanToolCallSchema)` to create a new message. */ -export const CreatePlanToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 172); +export const CreatePlanToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 172); /** * A phase groups related todos together for project-mode plans @@ -5108,132 +5060,135 @@ export const CreatePlanToolCallSchema: GenMessage = /*@__PUR * @generated from message agent.v1.Phase */ export type Phase = Message<"agent.v1.Phase"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: repeated agent.v1.TodoItem todos = 2; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 2; + */ + todos: TodoItem[]; }; /** * Describes the message agent.v1.Phase. * Use `create(PhaseSchema)` to create a new message. */ -export const PhaseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 173); +export const PhaseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 173); /** * @generated from message agent.v1.CreatePlanArgs */ export type CreatePlanArgs = Message<"agent.v1.CreatePlanArgs"> & { - /** - * @generated from field: string plan = 1; - */ - plan: string; + /** + * @generated from field: string plan = 1; + */ + plan: string; - /** - * @generated from field: repeated agent.v1.TodoItem todos = 2; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 2; + */ + todos: TodoItem[]; - /** - * @generated from field: string overview = 3; - */ - overview: string; + /** + * @generated from field: string overview = 3; + */ + overview: string; - /** - * @generated from field: string name = 4; - */ - name: string; + /** + * @generated from field: string name = 4; + */ + name: string; - /** - * When true, uses phases instead of flat todos (mutually exclusive) - * - * @generated from field: bool is_project = 5; - */ - isProject: boolean; + /** + * When true, uses phases instead of flat todos (mutually exclusive) + * + * @generated from field: bool is_project = 5; + */ + isProject: boolean; - /** - * Implementation phases (only valid when is_project=true) - * - * @generated from field: repeated agent.v1.Phase phases = 6; - */ - phases: Phase[]; + /** + * Implementation phases (only valid when is_project=true) + * + * @generated from field: repeated agent.v1.Phase phases = 6; + */ + phases: Phase[]; }; /** * Describes the message agent.v1.CreatePlanArgs. * Use `create(CreatePlanArgsSchema)` to create a new message. */ -export const CreatePlanArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 174); +export const CreatePlanArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 174); /** * @generated from message agent.v1.CreatePlanResult */ export type CreatePlanResult = Message<"agent.v1.CreatePlanResult"> & { - /** - * URI of the plan file (returned when file_based_plan_edits is enabled) - * - * @generated from field: string plan_uri = 3; - */ - planUri: string; + /** + * URI of the plan file (returned when file_based_plan_edits is enabled) + * + * @generated from field: string plan_uri = 3; + */ + planUri: string; - /** - * @generated from oneof agent.v1.CreatePlanResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.CreatePlanSuccess success = 1; - */ - value: CreatePlanSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.CreatePlanError error = 2; - */ - value: CreatePlanError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.CreatePlanResult.result + */ + result: { + /** + * @generated from field: agent.v1.CreatePlanSuccess success = 1; + */ + value: CreatePlanSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.CreatePlanError error = 2; + */ + value: CreatePlanError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.CreatePlanResult. * Use `create(CreatePlanResultSchema)` to create a new message. */ -export const CreatePlanResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 175); +export const CreatePlanResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 175); /** * @generated from message agent.v1.CreatePlanSuccess */ -export type CreatePlanSuccess = Message<"agent.v1.CreatePlanSuccess"> & {}; +export type CreatePlanSuccess = Message<"agent.v1.CreatePlanSuccess"> & { +}; /** * Describes the message agent.v1.CreatePlanSuccess. * Use `create(CreatePlanSuccessSchema)` to create a new message. */ -export const CreatePlanSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 176); +export const CreatePlanSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 176); /** * @generated from message agent.v1.CreatePlanError */ export type CreatePlanError = Message<"agent.v1.CreatePlanError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.CreatePlanError. * Use `create(CreatePlanErrorSchema)` to create a new message. */ -export const CreatePlanErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 177); +export const CreatePlanErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 177); /** * Query sent from server to client to create a plan file @@ -5241,24 +5196,23 @@ export const CreatePlanErrorSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.CreatePlanRequestQuery */ export type CreatePlanRequestQuery = Message<"agent.v1.CreatePlanRequestQuery"> & { - /** - * @generated from field: agent.v1.CreatePlanArgs args = 1; - */ - args?: CreatePlanArgs; + /** + * @generated from field: agent.v1.CreatePlanArgs args = 1; + */ + args?: CreatePlanArgs | undefined; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.CreatePlanRequestQuery. * Use `create(CreatePlanRequestQuerySchema)` to create a new message. */ -export const CreatePlanRequestQuerySchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 178); +export const CreatePlanRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 178); /** * Response from client with the created plan URI @@ -5266,1527 +5220,1517 @@ export const CreatePlanRequestQuerySchema: GenMessage = * @generated from message agent.v1.CreatePlanRequestResponse */ export type CreatePlanRequestResponse = Message<"agent.v1.CreatePlanRequestResponse"> & { - /** - * @generated from field: agent.v1.CreatePlanResult result = 1; - */ - result?: CreatePlanResult; + /** + * @generated from field: agent.v1.CreatePlanResult result = 1; + */ + result?: CreatePlanResult | undefined; }; /** * Describes the message agent.v1.CreatePlanRequestResponse. * Use `create(CreatePlanRequestResponseSchema)` to create a new message. */ -export const CreatePlanRequestResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 179); +export const CreatePlanRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 179); /** * @generated from message agent.v1.CursorRuleTypeGlobal */ -export type CursorRuleTypeGlobal = Message<"agent.v1.CursorRuleTypeGlobal"> & {}; +export type CursorRuleTypeGlobal = Message<"agent.v1.CursorRuleTypeGlobal"> & { +}; /** * Describes the message agent.v1.CursorRuleTypeGlobal. * Use `create(CursorRuleTypeGlobalSchema)` to create a new message. */ -export const CursorRuleTypeGlobalSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 180); +export const CursorRuleTypeGlobalSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 180); /** * @generated from message agent.v1.CursorRuleTypeFileGlobs */ export type CursorRuleTypeFileGlobs = Message<"agent.v1.CursorRuleTypeFileGlobs"> & { - /** - * @generated from field: repeated string globs = 1; - */ - globs: string[]; + /** + * @generated from field: repeated string globs = 1; + */ + globs: string[]; }; /** * Describes the message agent.v1.CursorRuleTypeFileGlobs. * Use `create(CursorRuleTypeFileGlobsSchema)` to create a new message. */ -export const CursorRuleTypeFileGlobsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 181); +export const CursorRuleTypeFileGlobsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 181); /** * @generated from message agent.v1.CursorRuleTypeAgentFetched */ export type CursorRuleTypeAgentFetched = Message<"agent.v1.CursorRuleTypeAgentFetched"> & { - /** - * @generated from field: string description = 1; - */ - description: string; + /** + * @generated from field: string description = 1; + */ + description: string; }; /** * Describes the message agent.v1.CursorRuleTypeAgentFetched. * Use `create(CursorRuleTypeAgentFetchedSchema)` to create a new message. */ -export const CursorRuleTypeAgentFetchedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 182); +export const CursorRuleTypeAgentFetchedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 182); /** * @generated from message agent.v1.CursorRuleTypeManuallyAttached */ -export type CursorRuleTypeManuallyAttached = Message<"agent.v1.CursorRuleTypeManuallyAttached"> & {}; +export type CursorRuleTypeManuallyAttached = Message<"agent.v1.CursorRuleTypeManuallyAttached"> & { +}; /** * Describes the message agent.v1.CursorRuleTypeManuallyAttached. * Use `create(CursorRuleTypeManuallyAttachedSchema)` to create a new message. */ -export const CursorRuleTypeManuallyAttachedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 183); +export const CursorRuleTypeManuallyAttachedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 183); /** * @generated from message agent.v1.CursorRuleType */ export type CursorRuleType = Message<"agent.v1.CursorRuleType"> & { - /** - * @generated from oneof agent.v1.CursorRuleType.type - */ - type: - | { - /** - * @generated from field: agent.v1.CursorRuleTypeGlobal global = 1; - */ - value: CursorRuleTypeGlobal; - case: "global"; - } - | { - /** - * @generated from field: agent.v1.CursorRuleTypeFileGlobs file_globbed = 2; - */ - value: CursorRuleTypeFileGlobs; - case: "fileGlobbed"; - } - | { - /** - * @generated from field: agent.v1.CursorRuleTypeAgentFetched agent_fetched = 3; - */ - value: CursorRuleTypeAgentFetched; - case: "agentFetched"; - } - | { - /** - * @generated from field: agent.v1.CursorRuleTypeManuallyAttached manually_attached = 4; - */ - value: CursorRuleTypeManuallyAttached; - case: "manuallyAttached"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.CursorRuleType.type + */ + type: { + /** + * @generated from field: agent.v1.CursorRuleTypeGlobal global = 1; + */ + value: CursorRuleTypeGlobal; + case: "global"; + } | { + /** + * @generated from field: agent.v1.CursorRuleTypeFileGlobs file_globbed = 2; + */ + value: CursorRuleTypeFileGlobs; + case: "fileGlobbed"; + } | { + /** + * @generated from field: agent.v1.CursorRuleTypeAgentFetched agent_fetched = 3; + */ + value: CursorRuleTypeAgentFetched; + case: "agentFetched"; + } | { + /** + * @generated from field: agent.v1.CursorRuleTypeManuallyAttached manually_attached = 4; + */ + value: CursorRuleTypeManuallyAttached; + case: "manuallyAttached"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.CursorRuleType. * Use `create(CursorRuleTypeSchema)` to create a new message. */ -export const CursorRuleTypeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 184); +export const CursorRuleTypeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 184); /** * @generated from message agent.v1.CursorRule */ export type CursorRule = Message<"agent.v1.CursorRule"> & { - /** - * absolute path to the .mdc file - * - * @generated from field: string full_path = 1; - */ - fullPath: string; + /** + * absolute path to the .mdc file + * + * @generated from field: string full_path = 1; + */ + fullPath: string; - /** - * rule body, trimmed to reasonable size if needed by client - * - * @generated from field: string content = 2; - */ - content: string; + /** + * rule body, trimmed to reasonable size if needed by client + * + * @generated from field: string content = 2; + */ + content: string; - /** - * classification of rule - * - * @generated from field: agent.v1.CursorRuleType type = 3; - */ - type?: CursorRuleType; + /** + * classification of rule + * + * @generated from field: agent.v1.CursorRuleType type = 3; + */ + type?: CursorRuleType | undefined; - /** - * source of the rule - * - * @generated from field: int32 source = 4; - */ - source: number; + /** + * source of the rule + * + * @generated from field: int32 source = 4; + */ + source: number; - /** - * Git remote origin URL for the repository containing this rule, if available. Normalized to host/path format (e.g., "github.com/owner/repo"). - * - * @generated from field: optional string git_remote_origin = 5; - */ - gitRemoteOrigin?: string; + /** + * Git remote origin URL for the repository containing this rule, if available. Normalized to host/path format (e.g., "github.com/owner/repo"). + * + * @generated from field: optional string git_remote_origin = 5; + */ + gitRemoteOrigin?: string | undefined; - /** - * @generated from field: optional string parse_error = 6; - */ - parseError?: string; + /** + * @generated from field: optional string parse_error = 6; + */ + parseError?: string | undefined; }; /** * Describes the message agent.v1.CursorRule. * Use `create(CursorRuleSchema)` to create a new message. */ -export const CursorRuleSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 185); +export const CursorRuleSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 185); /** * @generated from message agent.v1.DeleteArgs */ export type DeleteArgs = Message<"agent.v1.DeleteArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.DeleteArgs. * Use `create(DeleteArgsSchema)` to create a new message. */ -export const DeleteArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 186); +export const DeleteArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 186); /** * @generated from message agent.v1.DeleteResult */ export type DeleteResult = Message<"agent.v1.DeleteResult"> & { - /** - * @generated from oneof agent.v1.DeleteResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.DeleteSuccess success = 1; - */ - value: DeleteSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.DeleteFileNotFound file_not_found = 2; - */ - value: DeleteFileNotFound; - case: "fileNotFound"; - } - | { - /** - * @generated from field: agent.v1.DeleteNotFile not_file = 3; - */ - value: DeleteNotFile; - case: "notFile"; - } - | { - /** - * @generated from field: agent.v1.DeletePermissionDenied permission_denied = 4; - */ - value: DeletePermissionDenied; - case: "permissionDenied"; - } - | { - /** - * @generated from field: agent.v1.DeleteFileBusy file_busy = 5; - */ - value: DeleteFileBusy; - case: "fileBusy"; - } - | { - /** - * @generated from field: agent.v1.DeleteRejected rejected = 6; - */ - value: DeleteRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.DeleteError error = 7; - */ - value: DeleteError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.DeleteResult.result + */ + result: { + /** + * @generated from field: agent.v1.DeleteSuccess success = 1; + */ + value: DeleteSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.DeleteFileNotFound file_not_found = 2; + */ + value: DeleteFileNotFound; + case: "fileNotFound"; + } | { + /** + * @generated from field: agent.v1.DeleteNotFile not_file = 3; + */ + value: DeleteNotFile; + case: "notFile"; + } | { + /** + * @generated from field: agent.v1.DeletePermissionDenied permission_denied = 4; + */ + value: DeletePermissionDenied; + case: "permissionDenied"; + } | { + /** + * @generated from field: agent.v1.DeleteFileBusy file_busy = 5; + */ + value: DeleteFileBusy; + case: "fileBusy"; + } | { + /** + * @generated from field: agent.v1.DeleteRejected rejected = 6; + */ + value: DeleteRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.DeleteError error = 7; + */ + value: DeleteError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.DeleteResult. * Use `create(DeleteResultSchema)` to create a new message. */ -export const DeleteResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 187); +export const DeleteResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 187); /** * @generated from message agent.v1.DeleteSuccess */ export type DeleteSuccess = Message<"agent.v1.DeleteSuccess"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string deleted_file = 2; - */ - deletedFile: string; + /** + * @generated from field: string deleted_file = 2; + */ + deletedFile: string; - /** - * @generated from field: int64 file_size = 3; - */ - fileSize: bigint; + /** + * @generated from field: int64 file_size = 3; + */ + fileSize: bigint; - /** - * @generated from field: string prev_content = 4; - */ - prevContent: string; + /** + * @generated from field: string prev_content = 4; + */ + prevContent: string; }; /** * Describes the message agent.v1.DeleteSuccess. * Use `create(DeleteSuccessSchema)` to create a new message. */ -export const DeleteSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 188); +export const DeleteSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 188); /** * @generated from message agent.v1.DeleteFileNotFound */ export type DeleteFileNotFound = Message<"agent.v1.DeleteFileNotFound"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.DeleteFileNotFound. * Use `create(DeleteFileNotFoundSchema)` to create a new message. */ -export const DeleteFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 189); +export const DeleteFileNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 189); /** * @generated from message agent.v1.DeleteNotFile */ export type DeleteNotFile = Message<"agent.v1.DeleteNotFile"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * "directory" or "other" - * - * @generated from field: string actual_type = 2; - */ - actualType: string; + /** + * "directory" or "other" + * + * @generated from field: string actual_type = 2; + */ + actualType: string; }; /** * Describes the message agent.v1.DeleteNotFile. * Use `create(DeleteNotFileSchema)` to create a new message. */ -export const DeleteNotFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 190); +export const DeleteNotFileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 190); /** * @generated from message agent.v1.DeletePermissionDenied */ export type DeletePermissionDenied = Message<"agent.v1.DeletePermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string client_visible_error = 2; - */ - clientVisibleError: string; + /** + * @generated from field: string client_visible_error = 2; + */ + clientVisibleError: string; - /** - * @generated from field: bool is_readonly = 3; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 3; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.DeletePermissionDenied. * Use `create(DeletePermissionDeniedSchema)` to create a new message. */ -export const DeletePermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 191); +export const DeletePermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 191); /** * @generated from message agent.v1.DeleteFileBusy */ export type DeleteFileBusy = Message<"agent.v1.DeleteFileBusy"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.DeleteFileBusy. * Use `create(DeleteFileBusySchema)` to create a new message. */ -export const DeleteFileBusySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 192); +export const DeleteFileBusySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 192); /** * @generated from message agent.v1.DeleteRejected */ export type DeleteRejected = Message<"agent.v1.DeleteRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.DeleteRejected. * Use `create(DeleteRejectedSchema)` to create a new message. */ -export const DeleteRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 193); +export const DeleteRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 193); /** * @generated from message agent.v1.DeleteError */ export type DeleteError = Message<"agent.v1.DeleteError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.DeleteError. * Use `create(DeleteErrorSchema)` to create a new message. */ -export const DeleteErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 194); +export const DeleteErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 194); /** * @generated from message agent.v1.DeleteToolCall */ export type DeleteToolCall = Message<"agent.v1.DeleteToolCall"> & { - /** - * @generated from field: agent.v1.DeleteArgs args = 1; - */ - args?: DeleteArgs; + /** + * @generated from field: agent.v1.DeleteArgs args = 1; + */ + args?: DeleteArgs | undefined; - /** - * @generated from field: agent.v1.DeleteResult result = 2; - */ - result?: DeleteResult; + /** + * @generated from field: agent.v1.DeleteResult result = 2; + */ + result?: DeleteResult | undefined; }; /** * Describes the message agent.v1.DeleteToolCall. * Use `create(DeleteToolCallSchema)` to create a new message. */ -export const DeleteToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 195); +export const DeleteToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 195); /** * @generated from message agent.v1.DiagnosticsArgs */ export type DiagnosticsArgs = Message<"agent.v1.DiagnosticsArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.DiagnosticsArgs. * Use `create(DiagnosticsArgsSchema)` to create a new message. */ -export const DiagnosticsArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 196); +export const DiagnosticsArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 196); /** * @generated from message agent.v1.DiagnosticsResult */ export type DiagnosticsResult = Message<"agent.v1.DiagnosticsResult"> & { - /** - * @generated from oneof agent.v1.DiagnosticsResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.DiagnosticsSuccess success = 1; - */ - value: DiagnosticsSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsError error = 2; - */ - value: DiagnosticsError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsRejected rejected = 3; - */ - value: DiagnosticsRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsFileNotFound file_not_found = 4; - */ - value: DiagnosticsFileNotFound; - case: "fileNotFound"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsPermissionDenied permission_denied = 5; - */ - value: DiagnosticsPermissionDenied; - case: "permissionDenied"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.DiagnosticsResult.result + */ + result: { + /** + * @generated from field: agent.v1.DiagnosticsSuccess success = 1; + */ + value: DiagnosticsSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsError error = 2; + */ + value: DiagnosticsError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsRejected rejected = 3; + */ + value: DiagnosticsRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsFileNotFound file_not_found = 4; + */ + value: DiagnosticsFileNotFound; + case: "fileNotFound"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsPermissionDenied permission_denied = 5; + */ + value: DiagnosticsPermissionDenied; + case: "permissionDenied"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.DiagnosticsResult. * Use `create(DiagnosticsResultSchema)` to create a new message. */ -export const DiagnosticsResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 197); +export const DiagnosticsResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 197); /** * @generated from message agent.v1.DiagnosticsSuccess */ export type DiagnosticsSuccess = Message<"agent.v1.DiagnosticsSuccess"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: repeated agent.v1.Diagnostic diagnostics = 2; - */ - diagnostics: Diagnostic[]; + /** + * @generated from field: repeated agent.v1.Diagnostic diagnostics = 2; + */ + diagnostics: Diagnostic[]; - /** - * @generated from field: int32 total_diagnostics = 3; - */ - totalDiagnostics: number; + /** + * @generated from field: int32 total_diagnostics = 3; + */ + totalDiagnostics: number; }; /** * Describes the message agent.v1.DiagnosticsSuccess. * Use `create(DiagnosticsSuccessSchema)` to create a new message. */ -export const DiagnosticsSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 198); +export const DiagnosticsSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 198); /** * @generated from message agent.v1.Diagnostic */ export type Diagnostic = Message<"agent.v1.Diagnostic"> & { - /** - * @generated from field: int32 severity = 1; - */ - severity: number; + /** + * @generated from field: int32 severity = 1; + */ + severity: number; - /** - * @generated from field: agent.v1.Range range = 2; - */ - range?: Range; + /** + * @generated from field: agent.v1.Range range = 2; + */ + range?: Range | undefined; - /** - * @generated from field: string message = 3; - */ - message: string; + /** + * @generated from field: string message = 3; + */ + message: string; - /** - * @generated from field: string source = 4; - */ - source: string; + /** + * @generated from field: string source = 4; + */ + source: string; - /** - * @generated from field: string code = 5; - */ - code: string; + /** + * @generated from field: string code = 5; + */ + code: string; - /** - * @generated from field: bool is_stale = 6; - */ - isStale: boolean; + /** + * @generated from field: bool is_stale = 6; + */ + isStale: boolean; }; /** * Describes the message agent.v1.Diagnostic. * Use `create(DiagnosticSchema)` to create a new message. */ -export const DiagnosticSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 199); +export const DiagnosticSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 199); /** * @generated from message agent.v1.DiagnosticsError */ export type DiagnosticsError = Message<"agent.v1.DiagnosticsError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.DiagnosticsError. * Use `create(DiagnosticsErrorSchema)` to create a new message. */ -export const DiagnosticsErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 200); +export const DiagnosticsErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 200); /** * @generated from message agent.v1.DiagnosticsRejected */ export type DiagnosticsRejected = Message<"agent.v1.DiagnosticsRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.DiagnosticsRejected. * Use `create(DiagnosticsRejectedSchema)` to create a new message. */ -export const DiagnosticsRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 201); +export const DiagnosticsRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 201); /** * @generated from message agent.v1.DiagnosticsFileNotFound */ export type DiagnosticsFileNotFound = Message<"agent.v1.DiagnosticsFileNotFound"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.DiagnosticsFileNotFound. * Use `create(DiagnosticsFileNotFoundSchema)` to create a new message. */ -export const DiagnosticsFileNotFoundSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 202); +export const DiagnosticsFileNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 202); /** * @generated from message agent.v1.DiagnosticsPermissionDenied */ export type DiagnosticsPermissionDenied = Message<"agent.v1.DiagnosticsPermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.DiagnosticsPermissionDenied. * Use `create(DiagnosticsPermissionDeniedSchema)` to create a new message. */ -export const DiagnosticsPermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 203); +export const DiagnosticsPermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 203); /** * @generated from message agent.v1.EditArgs */ export type EditArgs = Message<"agent.v1.EditArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: optional string stream_content = 6; - */ - streamContent?: string; + /** + * @generated from field: optional string stream_content = 6; + */ + streamContent?: string | undefined; }; /** * Describes the message agent.v1.EditArgs. * Use `create(EditArgsSchema)` to create a new message. */ -export const EditArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 204); +export const EditArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 204); /** * @generated from message agent.v1.EditResult */ export type EditResult = Message<"agent.v1.EditResult"> & { - /** - * @generated from oneof agent.v1.EditResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.EditSuccess success = 1; - */ - value: EditSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.EditFileNotFound file_not_found = 2; - */ - value: EditFileNotFound; - case: "fileNotFound"; - } - | { - /** - * @generated from field: agent.v1.EditReadPermissionDenied read_permission_denied = 3; - */ - value: EditReadPermissionDenied; - case: "readPermissionDenied"; - } - | { - /** - * @generated from field: agent.v1.EditWritePermissionDenied write_permission_denied = 4; - */ - value: EditWritePermissionDenied; - case: "writePermissionDenied"; - } - | { - /** - * @generated from field: agent.v1.EditRejected rejected = 6; - */ - value: EditRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.EditError error = 7; - */ - value: EditError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.EditResult.result + */ + result: { + /** + * @generated from field: agent.v1.EditSuccess success = 1; + */ + value: EditSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.EditFileNotFound file_not_found = 2; + */ + value: EditFileNotFound; + case: "fileNotFound"; + } | { + /** + * @generated from field: agent.v1.EditReadPermissionDenied read_permission_denied = 3; + */ + value: EditReadPermissionDenied; + case: "readPermissionDenied"; + } | { + /** + * @generated from field: agent.v1.EditWritePermissionDenied write_permission_denied = 4; + */ + value: EditWritePermissionDenied; + case: "writePermissionDenied"; + } | { + /** + * @generated from field: agent.v1.EditRejected rejected = 6; + */ + value: EditRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.EditError error = 7; + */ + value: EditError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.EditResult. * Use `create(EditResultSchema)` to create a new message. */ -export const EditResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 205); +export const EditResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 205); /** * @generated from message agent.v1.EditSuccess */ export type EditSuccess = Message<"agent.v1.EditSuccess"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: optional int32 lines_added = 3; - */ - linesAdded?: number; + /** + * @generated from field: optional int32 lines_added = 3; + */ + linesAdded?: number | undefined; - /** - * @generated from field: optional int32 lines_removed = 4; - */ - linesRemoved?: number; + /** + * @generated from field: optional int32 lines_removed = 4; + */ + linesRemoved?: number | undefined; - /** - * Concatenated chunk diff strings separated by "\n...\n" - * - * @generated from field: optional string diff_string = 5; - */ - diffString?: string; + /** + * Concatenated chunk diff strings separated by "\n...\n" + * + * @generated from field: optional string diff_string = 5; + */ + diffString?: string | undefined; - /** - * undefined if file didn't exist before the edit - * - * @generated from field: optional string before_full_file_content = 6; - */ - beforeFullFileContent?: string; + /** + * undefined if file didn't exist before the edit + * + * @generated from field: optional string before_full_file_content = 6; + */ + beforeFullFileContent?: string | undefined; - /** - * @generated from field: string after_full_file_content = 7; - */ - afterFullFileContent: string; + /** + * @generated from field: string after_full_file_content = 7; + */ + afterFullFileContent: string; - /** - * Formatted message for display to model (resultForModel from EditTransformResult) - * - * @generated from field: optional string message = 8; - */ - message?: string; + /** + * Formatted message for display to model (resultForModel from EditTransformResult) + * + * @generated from field: optional string message = 8; + */ + message?: string | undefined; }; /** * Describes the message agent.v1.EditSuccess. * Use `create(EditSuccessSchema)` to create a new message. */ -export const EditSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 206); +export const EditSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 206); /** * @generated from message agent.v1.EditFileNotFound */ export type EditFileNotFound = Message<"agent.v1.EditFileNotFound"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.EditFileNotFound. * Use `create(EditFileNotFoundSchema)` to create a new message. */ -export const EditFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 207); +export const EditFileNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 207); /** * @generated from message agent.v1.EditReadPermissionDenied */ export type EditReadPermissionDenied = Message<"agent.v1.EditReadPermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.EditReadPermissionDenied. * Use `create(EditReadPermissionDeniedSchema)` to create a new message. */ -export const EditReadPermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 208); +export const EditReadPermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 208); /** * @generated from message agent.v1.EditWritePermissionDenied */ export type EditWritePermissionDenied = Message<"agent.v1.EditWritePermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; - /** - * @generated from field: bool is_readonly = 3; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 3; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.EditWritePermissionDenied. * Use `create(EditWritePermissionDeniedSchema)` to create a new message. */ -export const EditWritePermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 209); +export const EditWritePermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 209); /** * @generated from message agent.v1.EditRejected */ export type EditRejected = Message<"agent.v1.EditRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.EditRejected. * Use `create(EditRejectedSchema)` to create a new message. */ -export const EditRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 210); +export const EditRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 210); /** * @generated from message agent.v1.EditError */ export type EditError = Message<"agent.v1.EditError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; - /** - * @generated from field: optional string model_visible_error = 5; - */ - modelVisibleError?: string; + /** + * @generated from field: optional string model_visible_error = 5; + */ + modelVisibleError?: string | undefined; }; /** * Describes the message agent.v1.EditError. * Use `create(EditErrorSchema)` to create a new message. */ -export const EditErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 211); +export const EditErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 211); /** * @generated from message agent.v1.EditToolCall */ export type EditToolCall = Message<"agent.v1.EditToolCall"> & { - /** - * @generated from field: agent.v1.EditArgs args = 1; - */ - args?: EditArgs; + /** + * @generated from field: agent.v1.EditArgs args = 1; + */ + args?: EditArgs | undefined; - /** - * @generated from field: agent.v1.EditResult result = 2; - */ - result?: EditResult; + /** + * @generated from field: agent.v1.EditResult result = 2; + */ + result?: EditResult | undefined; }; /** * Describes the message agent.v1.EditToolCall. * Use `create(EditToolCallSchema)` to create a new message. */ -export const EditToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 212); +export const EditToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 212); /** * @generated from message agent.v1.EditToolCallDelta */ export type EditToolCallDelta = Message<"agent.v1.EditToolCallDelta"> & { - /** - * @generated from field: string stream_content_delta = 1; - */ - streamContentDelta: string; + /** + * @generated from field: string stream_content_delta = 1; + */ + streamContentDelta: string; }; /** * Describes the message agent.v1.EditToolCallDelta. * Use `create(EditToolCallDeltaSchema)` to create a new message. */ -export const EditToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 213); +export const EditToolCallDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 213); /** * @generated from message agent.v1.ExaFetchArgs */ export type ExaFetchArgs = Message<"agent.v1.ExaFetchArgs"> & { - /** - * @generated from field: repeated string ids = 1; - */ - ids: string[]; + /** + * @generated from field: repeated string ids = 1; + */ + ids: string[]; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.ExaFetchArgs. * Use `create(ExaFetchArgsSchema)` to create a new message. */ -export const ExaFetchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 214); +export const ExaFetchArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 214); /** * @generated from message agent.v1.ExaFetchResult */ export type ExaFetchResult = Message<"agent.v1.ExaFetchResult"> & { - /** - * @generated from oneof agent.v1.ExaFetchResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ExaFetchSuccess success = 1; - */ - value: ExaFetchSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchError error = 2; - */ - value: ExaFetchError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchRejected rejected = 3; - */ - value: ExaFetchRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExaFetchResult.result + */ + result: { + /** + * @generated from field: agent.v1.ExaFetchSuccess success = 1; + */ + value: ExaFetchSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ExaFetchError error = 2; + */ + value: ExaFetchError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ExaFetchRejected rejected = 3; + */ + value: ExaFetchRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaFetchResult. * Use `create(ExaFetchResultSchema)` to create a new message. */ -export const ExaFetchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 215); +export const ExaFetchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 215); /** * @generated from message agent.v1.ExaFetchSuccess */ export type ExaFetchSuccess = Message<"agent.v1.ExaFetchSuccess"> & { - /** - * @generated from field: repeated agent.v1.ExaFetchContent contents = 1; - */ - contents: ExaFetchContent[]; + /** + * @generated from field: repeated agent.v1.ExaFetchContent contents = 1; + */ + contents: ExaFetchContent[]; }; /** * Describes the message agent.v1.ExaFetchSuccess. * Use `create(ExaFetchSuccessSchema)` to create a new message. */ -export const ExaFetchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 216); +export const ExaFetchSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 216); /** * @generated from message agent.v1.ExaFetchError */ export type ExaFetchError = Message<"agent.v1.ExaFetchError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.ExaFetchError. * Use `create(ExaFetchErrorSchema)` to create a new message. */ -export const ExaFetchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 217); +export const ExaFetchErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 217); /** * @generated from message agent.v1.ExaFetchRejected */ export type ExaFetchRejected = Message<"agent.v1.ExaFetchRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.ExaFetchRejected. * Use `create(ExaFetchRejectedSchema)` to create a new message. */ -export const ExaFetchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 218); +export const ExaFetchRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 218); /** * @generated from message agent.v1.ExaFetchContent */ export type ExaFetchContent = Message<"agent.v1.ExaFetchContent"> & { - /** - * @generated from field: string title = 1; - */ - title: string; + /** + * @generated from field: string title = 1; + */ + title: string; - /** - * @generated from field: string url = 2; - */ - url: string; + /** + * @generated from field: string url = 2; + */ + url: string; - /** - * @generated from field: string text = 3; - */ - text: string; + /** + * @generated from field: string text = 3; + */ + text: string; - /** - * @generated from field: string published_date = 4; - */ - publishedDate: string; + /** + * @generated from field: string published_date = 4; + */ + publishedDate: string; }; /** * Describes the message agent.v1.ExaFetchContent. * Use `create(ExaFetchContentSchema)` to create a new message. */ -export const ExaFetchContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 219); +export const ExaFetchContentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 219); /** * @generated from message agent.v1.ExaFetchToolCall */ export type ExaFetchToolCall = Message<"agent.v1.ExaFetchToolCall"> & { - /** - * @generated from field: agent.v1.ExaFetchArgs args = 1; - */ - args?: ExaFetchArgs; + /** + * @generated from field: agent.v1.ExaFetchArgs args = 1; + */ + args?: ExaFetchArgs | undefined; - /** - * @generated from field: agent.v1.ExaFetchResult result = 2; - */ - result?: ExaFetchResult; + /** + * @generated from field: agent.v1.ExaFetchResult result = 2; + */ + result?: ExaFetchResult | undefined; }; /** * Describes the message agent.v1.ExaFetchToolCall. * Use `create(ExaFetchToolCallSchema)` to create a new message. */ -export const ExaFetchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 220); +export const ExaFetchToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 220); /** * @generated from message agent.v1.ExaFetchRequestQuery */ export type ExaFetchRequestQuery = Message<"agent.v1.ExaFetchRequestQuery"> & { - /** - * @generated from field: agent.v1.ExaFetchArgs args = 1; - */ - args?: ExaFetchArgs; + /** + * @generated from field: agent.v1.ExaFetchArgs args = 1; + */ + args?: ExaFetchArgs | undefined; }; /** * Describes the message agent.v1.ExaFetchRequestQuery. * Use `create(ExaFetchRequestQuerySchema)` to create a new message. */ -export const ExaFetchRequestQuerySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 221); +export const ExaFetchRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 221); /** * @generated from message agent.v1.ExaFetchRequestResponse */ export type ExaFetchRequestResponse = Message<"agent.v1.ExaFetchRequestResponse"> & { - /** - * @generated from oneof agent.v1.ExaFetchRequestResponse.result - */ - result: - | { - /** - * @generated from field: agent.v1.ExaFetchRequestResponse_Approved approved = 1; - */ - value: ExaFetchRequestResponse_Approved; - case: "approved"; - } - | { - /** - * @generated from field: agent.v1.ExaFetchRequestResponse_Rejected rejected = 2; - */ - value: ExaFetchRequestResponse_Rejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExaFetchRequestResponse.result + */ + result: { + /** + * @generated from field: agent.v1.ExaFetchRequestResponse_Approved approved = 1; + */ + value: ExaFetchRequestResponse_Approved; + case: "approved"; + } | { + /** + * @generated from field: agent.v1.ExaFetchRequestResponse_Rejected rejected = 2; + */ + value: ExaFetchRequestResponse_Rejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaFetchRequestResponse. * Use `create(ExaFetchRequestResponseSchema)` to create a new message. */ -export const ExaFetchRequestResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 222); +export const ExaFetchRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 222); /** * @generated from message agent.v1.ExaFetchRequestResponse_Approved */ -export type ExaFetchRequestResponse_Approved = Message<"agent.v1.ExaFetchRequestResponse_Approved"> & {}; +export type ExaFetchRequestResponse_Approved = Message<"agent.v1.ExaFetchRequestResponse_Approved"> & { +}; /** * Describes the message agent.v1.ExaFetchRequestResponse_Approved. * Use `create(ExaFetchRequestResponse_ApprovedSchema)` to create a new message. */ -export const ExaFetchRequestResponse_ApprovedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 223); +export const ExaFetchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 223); /** * @generated from message agent.v1.ExaFetchRequestResponse_Rejected */ export type ExaFetchRequestResponse_Rejected = Message<"agent.v1.ExaFetchRequestResponse_Rejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.ExaFetchRequestResponse_Rejected. * Use `create(ExaFetchRequestResponse_RejectedSchema)` to create a new message. */ -export const ExaFetchRequestResponse_RejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 224); +export const ExaFetchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 224); /** * @generated from message agent.v1.ExaSearchArgs */ export type ExaSearchArgs = Message<"agent.v1.ExaSearchArgs"> & { - /** - * @generated from field: string query = 1; - */ - query: string; + /** + * @generated from field: string query = 1; + */ + query: string; - /** - * "auto", "neural", or "keyword" - * - * @generated from field: string type = 2; - */ - type: string; + /** + * "auto", "neural", or "keyword" + * + * @generated from field: string type = 2; + */ + type: string; - /** - * @generated from field: int32 num_results = 3; - */ - numResults: number; + /** + * @generated from field: int32 num_results = 3; + */ + numResults: number; - /** - * @generated from field: string tool_call_id = 4; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 4; + */ + toolCallId: string; }; /** * Describes the message agent.v1.ExaSearchArgs. * Use `create(ExaSearchArgsSchema)` to create a new message. */ -export const ExaSearchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 225); +export const ExaSearchArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 225); /** * @generated from message agent.v1.ExaSearchResult */ export type ExaSearchResult = Message<"agent.v1.ExaSearchResult"> & { - /** - * @generated from oneof agent.v1.ExaSearchResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ExaSearchSuccess success = 1; - */ - value: ExaSearchSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchError error = 2; - */ - value: ExaSearchError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchRejected rejected = 3; - */ - value: ExaSearchRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExaSearchResult.result + */ + result: { + /** + * @generated from field: agent.v1.ExaSearchSuccess success = 1; + */ + value: ExaSearchSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ExaSearchError error = 2; + */ + value: ExaSearchError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ExaSearchRejected rejected = 3; + */ + value: ExaSearchRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaSearchResult. * Use `create(ExaSearchResultSchema)` to create a new message. */ -export const ExaSearchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 226); +export const ExaSearchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 226); /** * @generated from message agent.v1.ExaSearchSuccess */ export type ExaSearchSuccess = Message<"agent.v1.ExaSearchSuccess"> & { - /** - * @generated from field: repeated agent.v1.ExaSearchReference references = 1; - */ - references: ExaSearchReference[]; + /** + * @generated from field: repeated agent.v1.ExaSearchReference references = 1; + */ + references: ExaSearchReference[]; }; /** * Describes the message agent.v1.ExaSearchSuccess. * Use `create(ExaSearchSuccessSchema)` to create a new message. */ -export const ExaSearchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 227); +export const ExaSearchSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 227); /** * @generated from message agent.v1.ExaSearchError */ export type ExaSearchError = Message<"agent.v1.ExaSearchError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.ExaSearchError. * Use `create(ExaSearchErrorSchema)` to create a new message. */ -export const ExaSearchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 228); +export const ExaSearchErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 228); /** * @generated from message agent.v1.ExaSearchRejected */ export type ExaSearchRejected = Message<"agent.v1.ExaSearchRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.ExaSearchRejected. * Use `create(ExaSearchRejectedSchema)` to create a new message. */ -export const ExaSearchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 229); +export const ExaSearchRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 229); /** * @generated from message agent.v1.ExaSearchReference */ export type ExaSearchReference = Message<"agent.v1.ExaSearchReference"> & { - /** - * @generated from field: string title = 1; - */ - title: string; + /** + * @generated from field: string title = 1; + */ + title: string; - /** - * @generated from field: string url = 2; - */ - url: string; + /** + * @generated from field: string url = 2; + */ + url: string; - /** - * @generated from field: string text = 3; - */ - text: string; + /** + * @generated from field: string text = 3; + */ + text: string; - /** - * @generated from field: string published_date = 4; - */ - publishedDate: string; + /** + * @generated from field: string published_date = 4; + */ + publishedDate: string; }; /** * Describes the message agent.v1.ExaSearchReference. * Use `create(ExaSearchReferenceSchema)` to create a new message. */ -export const ExaSearchReferenceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 230); +export const ExaSearchReferenceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 230); /** * @generated from message agent.v1.ExaSearchToolCall */ export type ExaSearchToolCall = Message<"agent.v1.ExaSearchToolCall"> & { - /** - * @generated from field: agent.v1.ExaSearchArgs args = 1; - */ - args?: ExaSearchArgs; + /** + * @generated from field: agent.v1.ExaSearchArgs args = 1; + */ + args?: ExaSearchArgs | undefined; - /** - * @generated from field: agent.v1.ExaSearchResult result = 2; - */ - result?: ExaSearchResult; + /** + * @generated from field: agent.v1.ExaSearchResult result = 2; + */ + result?: ExaSearchResult | undefined; }; /** * Describes the message agent.v1.ExaSearchToolCall. * Use `create(ExaSearchToolCallSchema)` to create a new message. */ -export const ExaSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 231); +export const ExaSearchToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 231); /** * @generated from message agent.v1.ExaSearchRequestQuery */ export type ExaSearchRequestQuery = Message<"agent.v1.ExaSearchRequestQuery"> & { - /** - * @generated from field: agent.v1.ExaSearchArgs args = 1; - */ - args?: ExaSearchArgs; + /** + * @generated from field: agent.v1.ExaSearchArgs args = 1; + */ + args?: ExaSearchArgs | undefined; }; /** * Describes the message agent.v1.ExaSearchRequestQuery. * Use `create(ExaSearchRequestQuerySchema)` to create a new message. */ -export const ExaSearchRequestQuerySchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 232); +export const ExaSearchRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 232); /** * @generated from message agent.v1.ExaSearchRequestResponse */ export type ExaSearchRequestResponse = Message<"agent.v1.ExaSearchRequestResponse"> & { - /** - * @generated from oneof agent.v1.ExaSearchRequestResponse.result - */ - result: - | { - /** - * @generated from field: agent.v1.ExaSearchRequestResponse_Approved approved = 1; - */ - value: ExaSearchRequestResponse_Approved; - case: "approved"; - } - | { - /** - * @generated from field: agent.v1.ExaSearchRequestResponse_Rejected rejected = 2; - */ - value: ExaSearchRequestResponse_Rejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExaSearchRequestResponse.result + */ + result: { + /** + * @generated from field: agent.v1.ExaSearchRequestResponse_Approved approved = 1; + */ + value: ExaSearchRequestResponse_Approved; + case: "approved"; + } | { + /** + * @generated from field: agent.v1.ExaSearchRequestResponse_Rejected rejected = 2; + */ + value: ExaSearchRequestResponse_Rejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExaSearchRequestResponse. * Use `create(ExaSearchRequestResponseSchema)` to create a new message. */ -export const ExaSearchRequestResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 233); +export const ExaSearchRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 233); /** * @generated from message agent.v1.ExaSearchRequestResponse_Approved */ -export type ExaSearchRequestResponse_Approved = Message<"agent.v1.ExaSearchRequestResponse_Approved"> & {}; +export type ExaSearchRequestResponse_Approved = Message<"agent.v1.ExaSearchRequestResponse_Approved"> & { +}; /** * Describes the message agent.v1.ExaSearchRequestResponse_Approved. * Use `create(ExaSearchRequestResponse_ApprovedSchema)` to create a new message. */ -export const ExaSearchRequestResponse_ApprovedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 234); +export const ExaSearchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 234); /** * @generated from message agent.v1.ExaSearchRequestResponse_Rejected */ export type ExaSearchRequestResponse_Rejected = Message<"agent.v1.ExaSearchRequestResponse_Rejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.ExaSearchRequestResponse_Rejected. * Use `create(ExaSearchRequestResponse_RejectedSchema)` to create a new message. */ -export const ExaSearchRequestResponse_RejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 235); +export const ExaSearchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 235); /** * @generated from message agent.v1.ExecClientStreamClose */ export type ExecClientStreamClose = Message<"agent.v1.ExecClientStreamClose"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; }; /** * Describes the message agent.v1.ExecClientStreamClose. * Use `create(ExecClientStreamCloseSchema)` to create a new message. */ -export const ExecClientStreamCloseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 236); +export const ExecClientStreamCloseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 236); /** * @generated from message agent.v1.ExecClientThrow */ export type ExecClientThrow = Message<"agent.v1.ExecClientThrow"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; - /** - * @generated from field: optional string stack_trace = 3; - */ - stackTrace?: string; + /** + * @generated from field: optional string stack_trace = 3; + */ + stackTrace?: string | undefined; + + /** + * @generated from field: optional string error_code = 4; + */ + errorCode?: string | undefined; }; /** * Describes the message agent.v1.ExecClientThrow. * Use `create(ExecClientThrowSchema)` to create a new message. */ -export const ExecClientThrowSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 237); +export const ExecClientThrowSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 237); /** * @generated from message agent.v1.ExecClientHeartbeat */ export type ExecClientHeartbeat = Message<"agent.v1.ExecClientHeartbeat"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; }; /** * Describes the message agent.v1.ExecClientHeartbeat. * Use `create(ExecClientHeartbeatSchema)` to create a new message. */ -export const ExecClientHeartbeatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 238); +export const ExecClientHeartbeatSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 238); /** * @generated from message agent.v1.ExecClientControlMessage */ export type ExecClientControlMessage = Message<"agent.v1.ExecClientControlMessage"> & { - /** - * @generated from oneof agent.v1.ExecClientControlMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.ExecClientStreamClose stream_close = 1; - */ - value: ExecClientStreamClose; - case: "streamClose"; - } - | { - /** - * @generated from field: agent.v1.ExecClientThrow throw = 2; - */ - value: ExecClientThrow; - case: "throw"; - } - | { - /** - * @generated from field: agent.v1.ExecClientHeartbeat heartbeat = 3; - */ - value: ExecClientHeartbeat; - case: "heartbeat"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExecClientControlMessage.message + */ + message: { + /** + * @generated from field: agent.v1.ExecClientStreamClose stream_close = 1; + */ + value: ExecClientStreamClose; + case: "streamClose"; + } | { + /** + * @generated from field: agent.v1.ExecClientThrow throw = 2; + */ + value: ExecClientThrow; + case: "throw"; + } | { + /** + * @generated from field: agent.v1.ExecClientHeartbeat heartbeat = 3; + */ + value: ExecClientHeartbeat; + case: "heartbeat"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecClientControlMessage. * Use `create(ExecClientControlMessageSchema)` to create a new message. */ -export const ExecClientControlMessageSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 239); +export const ExecClientControlMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 239); /** * Simplified span context for tracing exec calls @@ -6794,1415 +6738,1719 @@ export const ExecClientControlMessageSchema: GenMessage & { - /** - * Trace identifier (128-bit as hex string, same for all spans in a trace) - * - * @generated from field: string trace_id = 1; - */ - traceId: string; + /** + * Trace identifier (128-bit as hex string, same for all spans in a trace) + * + * @generated from field: string trace_id = 1; + */ + traceId: string; - /** - * Unique span identifier (64-bit as hex string) - * - * @generated from field: string span_id = 2; - */ - spanId: string; + /** + * Unique span identifier (64-bit as hex string) + * + * @generated from field: string span_id = 2; + */ + spanId: string; - /** - * Trace flags bit field following OTEL SPAN_FLAGS_* semantics - * - * @generated from field: optional uint32 trace_flags = 3; - */ - traceFlags?: number; + /** + * Trace flags bit field following OTEL SPAN_FLAGS_* semantics + * + * @generated from field: optional uint32 trace_flags = 3; + */ + traceFlags?: number | undefined; - /** - * W3C trace-state header string (optional) - * - * @generated from field: optional string trace_state = 4; - */ - traceState?: string; + /** + * W3C trace-state header string (optional) + * + * @generated from field: optional string trace_state = 4; + */ + traceState?: string | undefined; }; /** * Describes the message agent.v1.SpanContext. * Use `create(SpanContextSchema)` to create a new message. */ -export const SpanContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 240); +export const SpanContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 240); /** * Empty abort message for aborting running execs * * @generated from message agent.v1.AbortArgs */ -export type AbortArgs = Message<"agent.v1.AbortArgs"> & {}; +export type AbortArgs = Message<"agent.v1.AbortArgs"> & { +}; /** * Describes the message agent.v1.AbortArgs. * Use `create(AbortArgsSchema)` to create a new message. */ -export const AbortArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 241); +export const AbortArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 241); /** * @generated from message agent.v1.AbortResult */ -export type AbortResult = Message<"agent.v1.AbortResult"> & {}; +export type AbortResult = Message<"agent.v1.AbortResult"> & { +}; /** * Describes the message agent.v1.AbortResult. * Use `create(AbortResultSchema)` to create a new message. */ -export const AbortResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 242); +export const AbortResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 242); /** * @generated from message agent.v1.ExecServerMessage */ export type ExecServerMessage = Message<"agent.v1.ExecServerMessage"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * Optional exec ID for attachable executions - * - * @generated from field: string exec_id = 15; - */ - execId: string; + /** + * Optional exec ID for attachable executions + * + * @generated from field: string exec_id = 15; + */ + execId: string; - /** - * Optional parent span context for tracing - * - * @generated from field: optional agent.v1.SpanContext span_context = 19; - */ - spanContext?: SpanContext; + /** + * Optional parent span context for tracing + * + * @generated from field: optional agent.v1.SpanContext span_context = 19; + */ + spanContext?: SpanContext | undefined; - /** - * @generated from oneof agent.v1.ExecServerMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.ShellArgs shell_args = 2; - */ - value: ShellArgs; - case: "shellArgs"; - } - | { - /** - * @generated from field: agent.v1.WriteArgs write_args = 3; - */ - value: WriteArgs; - case: "writeArgs"; - } - | { - /** - * @generated from field: agent.v1.DeleteArgs delete_args = 4; - */ - value: DeleteArgs; - case: "deleteArgs"; - } - | { - /** - * @generated from field: agent.v1.GrepArgs grep_args = 5; - */ - value: GrepArgs; - case: "grepArgs"; - } - | { - /** - * @generated from field: agent.v1.ReadArgs read_args = 7; - */ - value: ReadArgs; - case: "readArgs"; - } - | { - /** - * @generated from field: agent.v1.LsArgs ls_args = 8; - */ - value: LsArgs; - case: "lsArgs"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsArgs diagnostics_args = 9; - */ - value: DiagnosticsArgs; - case: "diagnosticsArgs"; - } - | { - /** - * @generated from field: agent.v1.RequestContextArgs request_context_args = 10; - */ - value: RequestContextArgs; - case: "requestContextArgs"; - } - | { - /** - * @generated from field: agent.v1.McpArgs mcp_args = 11; - */ - value: McpArgs; - case: "mcpArgs"; - } - | { - /** - * @generated from field: agent.v1.ShellArgs shell_stream_args = 14; - */ - value: ShellArgs; - case: "shellStreamArgs"; - } - | { - /** - * @generated from field: agent.v1.BackgroundShellSpawnArgs background_shell_spawn_args = 16; - */ - value: BackgroundShellSpawnArgs; - case: "backgroundShellSpawnArgs"; - } - | { - /** - * @generated from field: agent.v1.ListMcpResourcesExecArgs list_mcp_resources_exec_args = 17; - */ - value: ListMcpResourcesExecArgs; - case: "listMcpResourcesExecArgs"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceExecArgs read_mcp_resource_exec_args = 18; - */ - value: ReadMcpResourceExecArgs; - case: "readMcpResourceExecArgs"; - } - | { - /** - * @generated from field: agent.v1.FetchArgs fetch_args = 20; - */ - value: FetchArgs; - case: "fetchArgs"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenArgs record_screen_args = 21; - */ - value: RecordScreenArgs; - case: "recordScreenArgs"; - } - | { - /** - * @generated from field: agent.v1.ComputerUseArgs computer_use_args = 22; - */ - value: ComputerUseArgs; - case: "computerUseArgs"; - } - | { - /** - * @generated from field: agent.v1.WriteShellStdinArgs write_shell_stdin_args = 23; - */ - value: WriteShellStdinArgs; - case: "writeShellStdinArgs"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExecServerMessage.message + */ + message: { + /** + * @generated from field: agent.v1.ShellArgs shell_args = 2; + */ + value: ShellArgs; + case: "shellArgs"; + } | { + /** + * @generated from field: agent.v1.WriteArgs write_args = 3; + */ + value: WriteArgs; + case: "writeArgs"; + } | { + /** + * @generated from field: agent.v1.DeleteArgs delete_args = 4; + */ + value: DeleteArgs; + case: "deleteArgs"; + } | { + /** + * @generated from field: agent.v1.GrepArgs grep_args = 5; + */ + value: GrepArgs; + case: "grepArgs"; + } | { + /** + * @generated from field: agent.v1.ReadArgs read_args = 7; + */ + value: ReadArgs; + case: "readArgs"; + } | { + /** + * @generated from field: agent.v1.LsArgs ls_args = 8; + */ + value: LsArgs; + case: "lsArgs"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsArgs diagnostics_args = 9; + */ + value: DiagnosticsArgs; + case: "diagnosticsArgs"; + } | { + /** + * @generated from field: agent.v1.RequestContextArgs request_context_args = 10; + */ + value: RequestContextArgs; + case: "requestContextArgs"; + } | { + /** + * @generated from field: agent.v1.McpArgs mcp_args = 11; + */ + value: McpArgs; + case: "mcpArgs"; + } | { + /** + * @generated from field: agent.v1.ShellArgs shell_stream_args = 14; + */ + value: ShellArgs; + case: "shellStreamArgs"; + } | { + /** + * @generated from field: agent.v1.BackgroundShellSpawnArgs background_shell_spawn_args = 16; + */ + value: BackgroundShellSpawnArgs; + case: "backgroundShellSpawnArgs"; + } | { + /** + * @generated from field: agent.v1.ListMcpResourcesExecArgs list_mcp_resources_exec_args = 17; + */ + value: ListMcpResourcesExecArgs; + case: "listMcpResourcesExecArgs"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceExecArgs read_mcp_resource_exec_args = 18; + */ + value: ReadMcpResourceExecArgs; + case: "readMcpResourceExecArgs"; + } | { + /** + * @generated from field: agent.v1.FetchArgs fetch_args = 20; + */ + value: FetchArgs; + case: "fetchArgs"; + } | { + /** + * @generated from field: agent.v1.RecordScreenArgs record_screen_args = 21; + */ + value: RecordScreenArgs; + case: "recordScreenArgs"; + } | { + /** + * @generated from field: agent.v1.ComputerUseArgs computer_use_args = 22; + */ + value: ComputerUseArgs; + case: "computerUseArgs"; + } | { + /** + * @generated from field: agent.v1.WriteShellStdinArgs write_shell_stdin_args = 23; + */ + value: WriteShellStdinArgs; + case: "writeShellStdinArgs"; + } | { + /** + * @generated from field: agent.v1.ReadArgs redacted_read_args = 29; + */ + value: ReadArgs; + case: "redactedReadArgs"; + } | { + /** + * @generated from field: agent.v1.McpStateExecArgs mcp_state_exec_args = 36; + */ + value: McpStateExecArgs; + case: "mcpStateExecArgs"; + } | { + /** + * @generated from field: agent.v1.ExecuteHookArgs execute_hook_args = 27; + */ + value: ExecuteHookArgs; + case: "executeHookArgs"; + } | { + /** + * @generated from field: agent.v1.SubagentArgs subagent_args = 28; + */ + value: SubagentArgs; + case: "subagentArgs"; + } | { + /** + * @generated from field: agent.v1.ForceBackgroundShellArgs force_background_shell_args = 30; + */ + value: ForceBackgroundShellArgs; + case: "forceBackgroundShellArgs"; + } | { + /** + * @generated from field: agent.v1.ForceBackgroundSubagentArgs force_background_subagent_args = 31; + */ + value: ForceBackgroundSubagentArgs; + case: "forceBackgroundSubagentArgs"; + } | { + /** + * @generated from field: agent.v1.SubagentAwaitArgs subagent_await_args = 37; + */ + value: SubagentAwaitArgs; + case: "subagentAwaitArgs"; + } | { + /** + * @generated from field: agent.v1.SmartModeClassifierArgs smart_mode_classifier_args = 38; + */ + value: SmartModeClassifierArgs; + case: "smartModeClassifierArgs"; + } | { + /** + * @generated from field: agent.v1.CanvasDiagnosticsArgs canvas_diagnostics_args = 40; + */ + value: CanvasDiagnosticsArgs; + case: "canvasDiagnosticsArgs"; + } | { + /** + * @generated from field: agent.v1.ShellAllowlistPrecheckArgs shell_allowlist_precheck_args = 41; + */ + value: ShellAllowlistPrecheckArgs; + case: "shellAllowlistPrecheckArgs"; + } | { + /** + * @generated from field: agent.v1.McpAllowlistPrecheckArgs mcp_allowlist_precheck_args = 42; + */ + value: McpAllowlistPrecheckArgs; + case: "mcpAllowlistPrecheckArgs"; + } | { + /** + * @generated from field: agent.v1.WebFetchAllowlistPrecheckArgs web_fetch_allowlist_precheck_args = 43; + */ + value: WebFetchAllowlistPrecheckArgs; + case: "webFetchAllowlistPrecheckArgs"; + } | { + /** + * @generated from field: agent.v1.GetDiffRequest git_diff_request = 44; + */ + value: GetDiffRequest; + case: "gitDiffRequest"; + } | { + /** + * @generated from field: agent.v1.PiReadExecArgs pi_read_args = 45; + */ + value: PiReadExecArgs; + case: "piReadArgs"; + } | { + /** + * @generated from field: agent.v1.PiBashExecArgs pi_bash_args = 46; + */ + value: PiBashExecArgs; + case: "piBashArgs"; + } | { + /** + * @generated from field: agent.v1.PiEditExecArgs pi_edit_args = 47; + */ + value: PiEditExecArgs; + case: "piEditArgs"; + } | { + /** + * @generated from field: agent.v1.PiWriteExecArgs pi_write_args = 48; + */ + value: PiWriteExecArgs; + case: "piWriteArgs"; + } | { + /** + * @generated from field: agent.v1.PiGrepExecArgs pi_grep_args = 49; + */ + value: PiGrepExecArgs; + case: "piGrepArgs"; + } | { + /** + * @generated from field: agent.v1.PiFindExecArgs pi_find_args = 50; + */ + value: PiFindExecArgs; + case: "piFindArgs"; + } | { + /** + * @generated from field: agent.v1.PiLsExecArgs pi_ls_args = 51; + */ + value: PiLsExecArgs; + case: "piLsArgs"; + } | { + /** + * @generated from field: agent.v1.ShellArgs mini_swe_agent_bash_args = 52; + */ + value: ShellArgs; + case: "miniSweAgentBashArgs"; + } | { + /** + * @generated from field: agent.v1.ConversationSearchArgs conversation_search_args = 53; + */ + value: ConversationSearchArgs; + case: "conversationSearchArgs"; + } | { + /** + * @generated from field: agent.v1.AgentStoreConflictArgs agent_store_conflict_args = 54; + */ + value: AgentStoreConflictArgs; + case: "agentStoreConflictArgs"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: optional bool accept_hook_additional_contexts = 55; + */ + acceptHookAdditionalContexts?: boolean | undefined; }; /** * Describes the message agent.v1.ExecServerMessage. * Use `create(ExecServerMessageSchema)` to create a new message. */ -export const ExecServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 243); +export const ExecServerMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 243); /** * @generated from message agent.v1.ExecClientMessage */ export type ExecClientMessage = Message<"agent.v1.ExecClientMessage"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * Optional exec ID for attachable executions - * - * @generated from field: string exec_id = 15; - */ - execId: string; + /** + * Optional exec ID for attachable executions + * + * @generated from field: string exec_id = 15; + */ + execId: string; - /** - * @generated from oneof agent.v1.ExecClientMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.ShellResult shell_result = 2; - */ - value: ShellResult; - case: "shellResult"; - } - | { - /** - * @generated from field: agent.v1.WriteResult write_result = 3; - */ - value: WriteResult; - case: "writeResult"; - } - | { - /** - * @generated from field: agent.v1.DeleteResult delete_result = 4; - */ - value: DeleteResult; - case: "deleteResult"; - } - | { - /** - * @generated from field: agent.v1.GrepResult grep_result = 5; - */ - value: GrepResult; - case: "grepResult"; - } - | { - /** - * @generated from field: agent.v1.ReadResult read_result = 7; - */ - value: ReadResult; - case: "readResult"; - } - | { - /** - * @generated from field: agent.v1.LsResult ls_result = 8; - */ - value: LsResult; - case: "lsResult"; - } - | { - /** - * @generated from field: agent.v1.DiagnosticsResult diagnostics_result = 9; - */ - value: DiagnosticsResult; - case: "diagnosticsResult"; - } - | { - /** - * @generated from field: agent.v1.RequestContextResult request_context_result = 10; - */ - value: RequestContextResult; - case: "requestContextResult"; - } - | { - /** - * @generated from field: agent.v1.McpResult mcp_result = 11; - */ - value: McpResult; - case: "mcpResult"; - } - | { - /** - * @generated from field: agent.v1.ShellStream shell_stream = 14; - */ - value: ShellStream; - case: "shellStream"; - } - | { - /** - * @generated from field: agent.v1.BackgroundShellSpawnResult background_shell_spawn_result = 16; - */ - value: BackgroundShellSpawnResult; - case: "backgroundShellSpawnResult"; - } - | { - /** - * @generated from field: agent.v1.ListMcpResourcesExecResult list_mcp_resources_exec_result = 17; - */ - value: ListMcpResourcesExecResult; - case: "listMcpResourcesExecResult"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceExecResult read_mcp_resource_exec_result = 18; - */ - value: ReadMcpResourceExecResult; - case: "readMcpResourceExecResult"; - } - | { - /** - * @generated from field: agent.v1.FetchResult fetch_result = 20; - */ - value: FetchResult; - case: "fetchResult"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenResult record_screen_result = 21; - */ - value: RecordScreenResult; - case: "recordScreenResult"; - } - | { - /** - * @generated from field: agent.v1.ComputerUseResult computer_use_result = 22; - */ - value: ComputerUseResult; - case: "computerUseResult"; - } - | { - /** - * @generated from field: agent.v1.WriteShellStdinResult write_shell_stdin_result = 23; - */ - value: WriteShellStdinResult; - case: "writeShellStdinResult"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExecClientMessage.message + */ + message: { + /** + * @generated from field: agent.v1.ShellResult shell_result = 2; + */ + value: ShellResult; + case: "shellResult"; + } | { + /** + * @generated from field: agent.v1.WriteResult write_result = 3; + */ + value: WriteResult; + case: "writeResult"; + } | { + /** + * @generated from field: agent.v1.DeleteResult delete_result = 4; + */ + value: DeleteResult; + case: "deleteResult"; + } | { + /** + * @generated from field: agent.v1.GrepResult grep_result = 5; + */ + value: GrepResult; + case: "grepResult"; + } | { + /** + * @generated from field: agent.v1.ReadResult read_result = 7; + */ + value: ReadResult; + case: "readResult"; + } | { + /** + * @generated from field: agent.v1.LsResult ls_result = 8; + */ + value: LsResult; + case: "lsResult"; + } | { + /** + * @generated from field: agent.v1.DiagnosticsResult diagnostics_result = 9; + */ + value: DiagnosticsResult; + case: "diagnosticsResult"; + } | { + /** + * @generated from field: agent.v1.RequestContextResult request_context_result = 10; + */ + value: RequestContextResult; + case: "requestContextResult"; + } | { + /** + * @generated from field: agent.v1.McpResult mcp_result = 11; + */ + value: McpResult; + case: "mcpResult"; + } | { + /** + * @generated from field: agent.v1.ShellStream shell_stream = 14; + */ + value: ShellStream; + case: "shellStream"; + } | { + /** + * @generated from field: agent.v1.BackgroundShellSpawnResult background_shell_spawn_result = 16; + */ + value: BackgroundShellSpawnResult; + case: "backgroundShellSpawnResult"; + } | { + /** + * @generated from field: agent.v1.ListMcpResourcesExecResult list_mcp_resources_exec_result = 17; + */ + value: ListMcpResourcesExecResult; + case: "listMcpResourcesExecResult"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceExecResult read_mcp_resource_exec_result = 18; + */ + value: ReadMcpResourceExecResult; + case: "readMcpResourceExecResult"; + } | { + /** + * @generated from field: agent.v1.FetchResult fetch_result = 20; + */ + value: FetchResult; + case: "fetchResult"; + } | { + /** + * @generated from field: agent.v1.RecordScreenResult record_screen_result = 21; + */ + value: RecordScreenResult; + case: "recordScreenResult"; + } | { + /** + * @generated from field: agent.v1.ComputerUseResult computer_use_result = 22; + */ + value: ComputerUseResult; + case: "computerUseResult"; + } | { + /** + * @generated from field: agent.v1.WriteShellStdinResult write_shell_stdin_result = 23; + */ + value: WriteShellStdinResult; + case: "writeShellStdinResult"; + } | { + /** + * @generated from field: agent.v1.ReadResult redacted_read_result = 29; + */ + value: ReadResult; + case: "redactedReadResult"; + } | { + /** + * @generated from field: agent.v1.McpStateExecResult mcp_state_exec_result = 36; + */ + value: McpStateExecResult; + case: "mcpStateExecResult"; + } | { + /** + * @generated from field: agent.v1.ExecuteHookResult execute_hook_result = 27; + */ + value: ExecuteHookResult; + case: "executeHookResult"; + } | { + /** + * @generated from field: agent.v1.SubagentResult subagent_result = 28; + */ + value: SubagentResult; + case: "subagentResult"; + } | { + /** + * @generated from field: agent.v1.ForceBackgroundShellResult force_background_shell_result = 30; + */ + value: ForceBackgroundShellResult; + case: "forceBackgroundShellResult"; + } | { + /** + * @generated from field: agent.v1.ForceBackgroundSubagentResult force_background_subagent_result = 31; + */ + value: ForceBackgroundSubagentResult; + case: "forceBackgroundSubagentResult"; + } | { + /** + * @generated from field: agent.v1.SubagentAwaitResult subagent_await_result = 37; + */ + value: SubagentAwaitResult; + case: "subagentAwaitResult"; + } | { + /** + * @generated from field: agent.v1.SmartModeClassifierResult smart_mode_classifier_result = 38; + */ + value: SmartModeClassifierResult; + case: "smartModeClassifierResult"; + } | { + /** + * @generated from field: agent.v1.CanvasDiagnosticsResult canvas_diagnostics_result = 40; + */ + value: CanvasDiagnosticsResult; + case: "canvasDiagnosticsResult"; + } | { + /** + * @generated from field: agent.v1.ShellAllowlistPrecheckResult shell_allowlist_precheck_result = 41; + */ + value: ShellAllowlistPrecheckResult; + case: "shellAllowlistPrecheckResult"; + } | { + /** + * @generated from field: agent.v1.McpAllowlistPrecheckResult mcp_allowlist_precheck_result = 42; + */ + value: McpAllowlistPrecheckResult; + case: "mcpAllowlistPrecheckResult"; + } | { + /** + * @generated from field: agent.v1.WebFetchAllowlistPrecheckResult web_fetch_allowlist_precheck_result = 43; + */ + value: WebFetchAllowlistPrecheckResult; + case: "webFetchAllowlistPrecheckResult"; + } | { + /** + * @generated from field: agent.v1.GetDiffResponse git_diff_response = 44; + */ + value: GetDiffResponse; + case: "gitDiffResponse"; + } | { + /** + * @generated from field: agent.v1.PiReadExecResult pi_read_result = 46; + */ + value: PiReadExecResult; + case: "piReadResult"; + } | { + /** + * @generated from field: agent.v1.PiBashExecResult pi_bash_result = 47; + */ + value: PiBashExecResult; + case: "piBashResult"; + } | { + /** + * @generated from field: agent.v1.PiEditExecResult pi_edit_result = 48; + */ + value: PiEditExecResult; + case: "piEditResult"; + } | { + /** + * @generated from field: agent.v1.PiWriteExecResult pi_write_result = 49; + */ + value: PiWriteExecResult; + case: "piWriteResult"; + } | { + /** + * @generated from field: agent.v1.PiGrepExecResult pi_grep_result = 50; + */ + value: PiGrepExecResult; + case: "piGrepResult"; + } | { + /** + * @generated from field: agent.v1.PiFindExecResult pi_find_result = 51; + */ + value: PiFindExecResult; + case: "piFindResult"; + } | { + /** + * @generated from field: agent.v1.PiLsExecResult pi_ls_result = 52; + */ + value: PiLsExecResult; + case: "piLsResult"; + } | { + /** + * @generated from field: agent.v1.ConversationSearchResult conversation_search_result = 53; + */ + value: ConversationSearchResult; + case: "conversationSearchResult"; + } | { + /** + * @generated from field: agent.v1.AgentStoreConflictResult agent_store_conflict_result = 54; + */ + value: AgentStoreConflictResult; + case: "agentStoreConflictResult"; + } | { + /** + * @generated from field: agent.v1.ShellResult mini_swe_agent_bash_result = 55; + */ + value: ShellResult; + case: "miniSweAgentBashResult"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: optional int32 local_execution_time_ms = 39; + */ + localExecutionTimeMs?: number | undefined; + + /** + * @generated from field: repeated agent.v1.HookAdditionalContext hook_additional_contexts = 45; + */ + hookAdditionalContexts: HookAdditionalContext[]; }; /** * Describes the message agent.v1.ExecClientMessage. * Use `create(ExecClientMessageSchema)` to create a new message. */ -export const ExecClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 244); +export const ExecClientMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 244); /** * @generated from message agent.v1.FetchArgs */ export type FetchArgs = Message<"agent.v1.FetchArgs"> & { - /** - * @generated from field: string url = 1; - */ - url: string; + /** + * @generated from field: string url = 1; + */ + url: string; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.FetchArgs. * Use `create(FetchArgsSchema)` to create a new message. */ -export const FetchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 245); +export const FetchArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 245); /** * @generated from message agent.v1.FetchResult */ export type FetchResult = Message<"agent.v1.FetchResult"> & { - /** - * @generated from oneof agent.v1.FetchResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.FetchSuccess success = 1; - */ - value: FetchSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.FetchError error = 2; - */ - value: FetchError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.FetchResult.result + */ + result: { + /** + * @generated from field: agent.v1.FetchSuccess success = 1; + */ + value: FetchSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.FetchError error = 2; + */ + value: FetchError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.FetchResult. * Use `create(FetchResultSchema)` to create a new message. */ -export const FetchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 246); +export const FetchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 246); /** * @generated from message agent.v1.FetchSuccess */ export type FetchSuccess = Message<"agent.v1.FetchSuccess"> & { - /** - * @generated from field: string url = 1; - */ - url: string; + /** + * @generated from field: string url = 1; + */ + url: string; - /** - * @generated from field: string content = 2; - */ - content: string; + /** + * @generated from field: string content = 2; + */ + content: string; - /** - * @generated from field: int32 status_code = 3; - */ - statusCode: number; + /** + * @generated from field: int32 status_code = 3; + */ + statusCode: number; - /** - * @generated from field: string content_type = 4; - */ - contentType: string; + /** + * @generated from field: string content_type = 4; + */ + contentType: string; }; /** * Describes the message agent.v1.FetchSuccess. * Use `create(FetchSuccessSchema)` to create a new message. */ -export const FetchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 247); +export const FetchSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 247); /** * @generated from message agent.v1.FetchError */ export type FetchError = Message<"agent.v1.FetchError"> & { - /** - * @generated from field: string url = 1; - */ - url: string; + /** + * @generated from field: string url = 1; + */ + url: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.FetchError. * Use `create(FetchErrorSchema)` to create a new message. */ -export const FetchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 248); +export const FetchErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 248); /** * @generated from message agent.v1.GenerateImageArgs */ export type GenerateImageArgs = Message<"agent.v1.GenerateImageArgs"> & { - /** - * @generated from field: string description = 1; - */ - description: string; + /** + * @generated from field: string description = 1; + */ + description: string; - /** - * @generated from field: optional string file_path = 2; - */ - filePath?: string; + /** + * @generated from field: optional string file_path = 2; + */ + filePath?: string | undefined; - /** - * Optional paths to reference images to use as input for image-to-image generation - * - * @generated from field: repeated string reference_image_paths = 5; - */ - referenceImagePaths: string[]; + /** + * Optional paths to reference images to use as input for image-to-image generation + * + * @generated from field: repeated string reference_image_paths = 5; + */ + referenceImagePaths: string[]; }; /** * Describes the message agent.v1.GenerateImageArgs. * Use `create(GenerateImageArgsSchema)` to create a new message. */ -export const GenerateImageArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 249); +export const GenerateImageArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 249); /** * @generated from message agent.v1.GenerateImageResult */ export type GenerateImageResult = Message<"agent.v1.GenerateImageResult"> & { - /** - * @generated from oneof agent.v1.GenerateImageResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.GenerateImageSuccess success = 1; - */ - value: GenerateImageSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.GenerateImageError error = 2; - */ - value: GenerateImageError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.GenerateImageResult.result + */ + result: { + /** + * @generated from field: agent.v1.GenerateImageSuccess success = 1; + */ + value: GenerateImageSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.GenerateImageError error = 2; + */ + value: GenerateImageError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GenerateImageResult. * Use `create(GenerateImageResultSchema)` to create a new message. */ -export const GenerateImageResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 250); +export const GenerateImageResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 250); /** * @generated from message agent.v1.GenerateImageSuccess */ export type GenerateImageSuccess = Message<"agent.v1.GenerateImageSuccess"> & { - /** - * Actual file path where the image was saved (e.g., /path/to/project/assets/image.png) - * - * @generated from field: string file_path = 1; - */ - filePath: string; + /** + * Actual file path where the image was saved (e.g., /path/to/project/assets/image.png) + * + * @generated from field: string file_path = 1; + */ + filePath: string; - /** - * Base64-encoded image data - * - * @generated from field: string image_data = 2; - */ - imageData: string; + /** + * Base64-encoded image data + * + * @generated from field: string image_data = 2; + */ + imageData: string; }; /** * Describes the message agent.v1.GenerateImageSuccess. * Use `create(GenerateImageSuccessSchema)` to create a new message. */ -export const GenerateImageSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 251); +export const GenerateImageSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 251); /** * @generated from message agent.v1.GenerateImageError */ export type GenerateImageError = Message<"agent.v1.GenerateImageError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.GenerateImageError. * Use `create(GenerateImageErrorSchema)` to create a new message. */ -export const GenerateImageErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 252); +export const GenerateImageErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 252); /** * @generated from message agent.v1.GenerateImageToolCall */ export type GenerateImageToolCall = Message<"agent.v1.GenerateImageToolCall"> & { - /** - * @generated from field: agent.v1.GenerateImageArgs args = 1; - */ - args?: GenerateImageArgs; + /** + * @generated from field: agent.v1.GenerateImageArgs args = 1; + */ + args?: GenerateImageArgs | undefined; - /** - * @generated from field: agent.v1.GenerateImageResult result = 2; - */ - result?: GenerateImageResult; + /** + * @generated from field: agent.v1.GenerateImageResult result = 2; + */ + result?: GenerateImageResult | undefined; }; /** * Describes the message agent.v1.GenerateImageToolCall. * Use `create(GenerateImageToolCallSchema)` to create a new message. */ -export const GenerateImageToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 253); +export const GenerateImageToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 253); /** * @generated from message agent.v1.GrepArgs */ export type GrepArgs = Message<"agent.v1.GrepArgs"> & { - /** - * @generated from field: string pattern = 1; - */ - pattern: string; + /** + * @generated from field: string pattern = 1; + */ + pattern: string; - /** - * @generated from field: optional string path = 2; - */ - path?: string; + /** + * @generated from field: optional string path = 2; + */ + path?: string | undefined; - /** - * @generated from field: optional string glob = 3; - */ - glob?: string; + /** + * @generated from field: optional string glob = 3; + */ + glob?: string | undefined; - /** - * "content", "files_with_matches", "count" - * - * @generated from field: optional string output_mode = 4; - */ - outputMode?: string; + /** + * "content", "files_with_matches", "count" + * + * @generated from field: optional string output_mode = 4; + */ + outputMode?: string | undefined; - /** - * @generated from field: optional int32 context_before = 5; - */ - contextBefore?: number; + /** + * @generated from field: optional int32 context_before = 5; + */ + contextBefore?: number | undefined; - /** - * @generated from field: optional int32 context_after = 6; - */ - contextAfter?: number; + /** + * @generated from field: optional int32 context_after = 6; + */ + contextAfter?: number | undefined; - /** - * @generated from field: optional int32 context = 7; - */ - context?: number; + /** + * @generated from field: optional int32 context = 7; + */ + context?: number | undefined; - /** - * @generated from field: optional bool case_insensitive = 8; - */ - caseInsensitive?: boolean; + /** + * @generated from field: optional bool case_insensitive = 8; + */ + caseInsensitive?: boolean | undefined; - /** - * --type - * - * @generated from field: optional string type = 9; - */ - type?: string; + /** + * --type + * + * @generated from field: optional string type = 9; + */ + type?: string | undefined; - /** - * | head -N - * - * @generated from field: optional int32 head_limit = 10; - */ - headLimit?: number; + /** + * | head -N + * + * @generated from field: optional int32 head_limit = 10; + */ + headLimit?: number | undefined; - /** - * -U --multiline-dotall - * - * @generated from field: optional bool multiline = 11; - */ - multiline?: boolean; + /** + * -U --multiline-dotall + * + * @generated from field: optional bool multiline = 11; + */ + multiline?: boolean | undefined; - /** - * --sort: "none", "path", "modified", "accessed", "created" - * - * @generated from field: optional string sort = 12; - */ - sort?: string; + /** + * --sort: "none", "path", "modified", "accessed", "created" + * + * @generated from field: optional string sort = 12; + */ + sort?: string | undefined; - /** - * if false, use --sortr for reverse sort - * - * @generated from field: optional bool sort_ascending = 13; - */ - sortAscending?: boolean; + /** + * if false, use --sortr for reverse sort + * + * @generated from field: optional bool sort_ascending = 13; + */ + sortAscending?: boolean | undefined; - /** - * @generated from field: string tool_call_id = 14; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 14; + */ + toolCallId: string; - /** - * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 15; - */ - sandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 15; + */ + sandboxPolicy?: SandboxPolicy | undefined; + + /** + * @generated from field: optional int32 offset = 16; + */ + offset?: number | undefined; }; /** * Describes the message agent.v1.GrepArgs. * Use `create(GrepArgsSchema)` to create a new message. */ -export const GrepArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 254); +export const GrepArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 254); /** * @generated from message agent.v1.GrepResult */ export type GrepResult = Message<"agent.v1.GrepResult"> & { - /** - * @generated from oneof agent.v1.GrepResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.GrepSuccess success = 1; - */ - value: GrepSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.GrepError error = 2; - */ - value: GrepError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.GrepResult.result + */ + result: { + /** + * @generated from field: agent.v1.GrepSuccess success = 1; + */ + value: GrepSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.GrepError error = 2; + */ + value: GrepError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GrepResult. * Use `create(GrepResultSchema)` to create a new message. */ -export const GrepResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 255); +export const GrepResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 255); /** * @generated from message agent.v1.GrepError */ export type GrepError = Message<"agent.v1.GrepError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.GrepError. * Use `create(GrepErrorSchema)` to create a new message. */ -export const GrepErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 256); +export const GrepErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 256); /** * @generated from message agent.v1.GrepSuccess */ export type GrepSuccess = Message<"agent.v1.GrepSuccess"> & { - /** - * @generated from field: string pattern = 1; - */ - pattern: string; + /** + * @generated from field: string pattern = 1; + */ + pattern: string; - /** - * @generated from field: string path = 2; - */ - path: string; + /** + * @generated from field: string path = 2; + */ + path: string; - /** - * "content", "files_with_matches", or "count" - * - * @generated from field: string output_mode = 3; - */ - outputMode: string; + /** + * "content", "files_with_matches", or "count" + * + * @generated from field: string output_mode = 3; + */ + outputMode: string; - /** - * @generated from field: map workspace_results = 4; - */ - workspaceResults: { [key: string]: GrepUnionResult }; + /** + * @generated from field: map workspace_results = 4; + */ + workspaceResults: { [key: string]: GrepUnionResult }; - /** - * @generated from field: optional agent.v1.GrepUnionResult active_editor_result = 5; - */ - activeEditorResult?: GrepUnionResult; + /** + * @generated from field: optional agent.v1.GrepUnionResult active_editor_result = 5; + */ + activeEditorResult?: GrepUnionResult | undefined; }; /** * Describes the message agent.v1.GrepSuccess. * Use `create(GrepSuccessSchema)` to create a new message. */ -export const GrepSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 257); +export const GrepSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 257); /** * @generated from message agent.v1.GrepUnionResult */ export type GrepUnionResult = Message<"agent.v1.GrepUnionResult"> & { - /** - * @generated from oneof agent.v1.GrepUnionResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.GrepCountResult count = 1; - */ - value: GrepCountResult; - case: "count"; - } - | { - /** - * @generated from field: agent.v1.GrepFilesResult files = 2; - */ - value: GrepFilesResult; - case: "files"; - } - | { - /** - * @generated from field: agent.v1.GrepContentResult content = 3; - */ - value: GrepContentResult; - case: "content"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.GrepUnionResult.result + */ + result: { + /** + * @generated from field: agent.v1.GrepCountResult count = 1; + */ + value: GrepCountResult; + case: "count"; + } | { + /** + * @generated from field: agent.v1.GrepFilesResult files = 2; + */ + value: GrepFilesResult; + case: "files"; + } | { + /** + * @generated from field: agent.v1.GrepContentResult content = 3; + */ + value: GrepContentResult; + case: "content"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.GrepUnionResult. * Use `create(GrepUnionResultSchema)` to create a new message. */ -export const GrepUnionResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 258); +export const GrepUnionResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 258); /** * @generated from message agent.v1.GrepCountResult */ export type GrepCountResult = Message<"agent.v1.GrepCountResult"> & { - /** - * ordered by relevance - * - * @generated from field: repeated agent.v1.GrepFileCount counts = 1; - */ - counts: GrepFileCount[]; + /** + * ordered by relevance + * + * @generated from field: repeated agent.v1.GrepFileCount counts = 1; + */ + counts: GrepFileCount[]; - /** - * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) - * - * @generated from field: int32 total_files = 2; - */ - totalFiles: number; + /** + * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) + * + * @generated from field: int32 total_files = 2; + */ + totalFiles: number; - /** - * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) - * - * @generated from field: int32 total_matches = 3; - */ - totalMatches: number; + /** + * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) + * + * @generated from field: int32 total_matches = 3; + */ + totalMatches: number; - /** - * true if the client truncated the output sent to the server - * - * @generated from field: bool client_truncated = 4; - */ - clientTruncated: boolean; + /** + * true if the client truncated the output sent to the server + * + * @generated from field: bool client_truncated = 4; + */ + clientTruncated: boolean; - /** - * true if we truncated the output from the ripgrep call itself - * - * @generated from field: bool ripgrep_truncated = 5; - */ - ripgrepTruncated: boolean; + /** + * true if we truncated the output from the ripgrep call itself + * + * @generated from field: bool ripgrep_truncated = 5; + */ + ripgrepTruncated: boolean; + + /** + * @generated from field: optional int32 head_limit_applied = 6; + */ + headLimitApplied?: number | undefined; + + /** + * @generated from field: optional int32 offset_applied = 7; + */ + offsetApplied?: number | undefined; }; /** * Describes the message agent.v1.GrepCountResult. * Use `create(GrepCountResultSchema)` to create a new message. */ -export const GrepCountResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 259); +export const GrepCountResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 259); /** * @generated from message agent.v1.GrepFileCount */ export type GrepFileCount = Message<"agent.v1.GrepFileCount"> & { - /** - * @generated from field: string file = 1; - */ - file: string; + /** + * @generated from field: string file = 1; + */ + file: string; - /** - * @generated from field: int32 count = 2; - */ - count: number; + /** + * @generated from field: int32 count = 2; + */ + count: number; }; /** * Describes the message agent.v1.GrepFileCount. * Use `create(GrepFileCountSchema)` to create a new message. */ -export const GrepFileCountSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 260); +export const GrepFileCountSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 260); /** * @generated from message agent.v1.GrepFilesResult */ export type GrepFilesResult = Message<"agent.v1.GrepFilesResult"> & { - /** - * ordered by relevance - * - * @generated from field: repeated string files = 1; - */ - files: string[]; + /** + * ordered by relevance + * + * @generated from field: repeated string files = 1; + */ + files: string[]; - /** - * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) - * - * @generated from field: int32 total_files = 2; - */ - totalFiles: number; + /** + * The total count of files that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of files returned to the server) + * + * @generated from field: int32 total_files = 2; + */ + totalFiles: number; - /** - * true if the client truncated the output sent to the server - * - * @generated from field: bool client_truncated = 3; - */ - clientTruncated: boolean; + /** + * true if the client truncated the output sent to the server + * + * @generated from field: bool client_truncated = 3; + */ + clientTruncated: boolean; - /** - * true if we truncated the output from the ripgrep call itself - * - * @generated from field: bool ripgrep_truncated = 4; - */ - ripgrepTruncated: boolean; + /** + * true if we truncated the output from the ripgrep call itself + * + * @generated from field: bool ripgrep_truncated = 4; + */ + ripgrepTruncated: boolean; + + /** + * @generated from field: optional int32 head_limit_applied = 5; + */ + headLimitApplied?: number | undefined; + + /** + * @generated from field: optional int32 offset_applied = 6; + */ + offsetApplied?: number | undefined; }; /** * Describes the message agent.v1.GrepFilesResult. * Use `create(GrepFilesResultSchema)` to create a new message. */ -export const GrepFilesResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 261); +export const GrepFilesResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 261); /** * @generated from message agent.v1.GrepContentResult */ export type GrepContentResult = Message<"agent.v1.GrepContentResult"> & { - /** - * ordered by relevance - * - * @generated from field: repeated agent.v1.GrepFileMatch matches = 1; - */ - matches: GrepFileMatch[]; + /** + * ordered by relevance + * + * @generated from field: repeated agent.v1.GrepFileMatch matches = 1; + */ + matches: GrepFileMatch[]; - /** - * The total count of lines that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of lines returned to the server) - * - * @generated from field: int32 total_lines = 2; - */ - totalLines: number; + /** + * The total count of lines that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of lines returned to the server) + * + * @generated from field: int32 total_lines = 2; + */ + totalLines: number; - /** - * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) - * - * @generated from field: int32 total_matched_lines = 3; - */ - totalMatchedLines: number; + /** + * The total count of matches that the client found from the ripgrep call This is a lower bound if we truncated the output from the ripgrep call itself, but is accurate if client_truncated is true (but may be more than the number of matches returned to the server) + * + * @generated from field: int32 total_matched_lines = 3; + */ + totalMatchedLines: number; - /** - * true if the client truncated the output sent to the server - * - * @generated from field: bool client_truncated = 4; - */ - clientTruncated: boolean; + /** + * true if the client truncated the output sent to the server + * + * @generated from field: bool client_truncated = 4; + */ + clientTruncated: boolean; - /** - * true if we truncated the output from the ripgrep call itself - * - * @generated from field: bool ripgrep_truncated = 5; - */ - ripgrepTruncated: boolean; + /** + * true if we truncated the output from the ripgrep call itself + * + * @generated from field: bool ripgrep_truncated = 5; + */ + ripgrepTruncated: boolean; + + /** + * @generated from field: optional int32 head_limit_applied = 6; + */ + headLimitApplied?: number | undefined; + + /** + * @generated from field: optional int32 offset_applied = 7; + */ + offsetApplied?: number | undefined; }; /** * Describes the message agent.v1.GrepContentResult. * Use `create(GrepContentResultSchema)` to create a new message. */ -export const GrepContentResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 262); +export const GrepContentResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 262); /** * @generated from message agent.v1.GrepFileMatch */ export type GrepFileMatch = Message<"agent.v1.GrepFileMatch"> & { - /** - * @generated from field: string file = 1; - */ - file: string; + /** + * @generated from field: string file = 1; + */ + file: string; - /** - * @generated from field: repeated agent.v1.GrepContentMatch matches = 2; - */ - matches: GrepContentMatch[]; + /** + * @generated from field: repeated agent.v1.GrepContentMatch matches = 2; + */ + matches: GrepContentMatch[]; }; /** * Describes the message agent.v1.GrepFileMatch. * Use `create(GrepFileMatchSchema)` to create a new message. */ -export const GrepFileMatchSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 263); +export const GrepFileMatchSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 263); /** * @generated from message agent.v1.GrepContentMatch */ export type GrepContentMatch = Message<"agent.v1.GrepContentMatch"> & { - /** - * @generated from field: int32 line_number = 1; - */ - lineNumber: number; + /** + * @generated from field: int32 line_number = 1; + */ + lineNumber: number; - /** - * @generated from field: string content = 2; - */ - content: string; + /** + * @generated from field: string content = 2; + */ + content: string; - /** - * @generated from field: bool content_truncated = 3; - */ - contentTruncated: boolean; + /** + * @generated from field: bool content_truncated = 3; + */ + contentTruncated: boolean; - /** - * true for context lines (-A/B/C) - * - * @generated from field: bool is_context_line = 4; - */ - isContextLine: boolean; + /** + * true for context lines (-A/B/C) + * + * @generated from field: bool is_context_line = 4; + */ + isContextLine: boolean; }; /** * Describes the message agent.v1.GrepContentMatch. * Use `create(GrepContentMatchSchema)` to create a new message. */ -export const GrepContentMatchSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 264); +export const GrepContentMatchSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 264); /** * @generated from message agent.v1.GrepStream */ export type GrepStream = Message<"agent.v1.GrepStream"> & { - /** - * @generated from field: string pattern = 1; - */ - pattern: string; + /** + * @generated from field: string pattern = 1; + */ + pattern: string; }; /** * Describes the message agent.v1.GrepStream. * Use `create(GrepStreamSchema)` to create a new message. */ -export const GrepStreamSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 265); +export const GrepStreamSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 265); /** * @generated from message agent.v1.GrepToolCall */ export type GrepToolCall = Message<"agent.v1.GrepToolCall"> & { - /** - * @generated from field: agent.v1.GrepArgs args = 1; - */ - args?: GrepArgs; + /** + * @generated from field: agent.v1.GrepArgs args = 1; + */ + args?: GrepArgs | undefined; - /** - * @generated from field: agent.v1.GrepResult result = 2; - */ - result?: GrepResult; + /** + * @generated from field: agent.v1.GrepResult result = 2; + */ + result?: GrepResult | undefined; }; /** * Describes the message agent.v1.GrepToolCall. * Use `create(GrepToolCallSchema)` to create a new message. */ -export const GrepToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 266); +export const GrepToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 266); /** * @generated from message agent.v1.GetBlobArgs */ export type GetBlobArgs = Message<"agent.v1.GetBlobArgs"> & { - /** - * @generated from field: bytes blob_id = 1; - */ - blobId: Uint8Array; + /** + * @generated from field: bytes blob_id = 1; + */ + blobId: Uint8Array; }; /** * Describes the message agent.v1.GetBlobArgs. * Use `create(GetBlobArgsSchema)` to create a new message. */ -export const GetBlobArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 267); +export const GetBlobArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 267); /** * @generated from message agent.v1.GetBlobResult */ export type GetBlobResult = Message<"agent.v1.GetBlobResult"> & { - /** - * @generated from field: optional bytes blob_data = 1; - */ - blobData?: Uint8Array; + /** + * @generated from field: optional bytes blob_data = 1; + */ + blobData?: Uint8Array | undefined; }; /** * Describes the message agent.v1.GetBlobResult. * Use `create(GetBlobResultSchema)` to create a new message. */ -export const GetBlobResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 268); +export const GetBlobResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 268); /** * @generated from message agent.v1.SetBlobArgs */ export type SetBlobArgs = Message<"agent.v1.SetBlobArgs"> & { - /** - * @generated from field: bytes blob_id = 1; - */ - blobId: Uint8Array; + /** + * @generated from field: bytes blob_id = 1; + */ + blobId: Uint8Array; - /** - * @generated from field: bytes blob_data = 2; - */ - blobData: Uint8Array; + /** + * @generated from field: bytes blob_data = 2; + */ + blobData: Uint8Array; }; /** * Describes the message agent.v1.SetBlobArgs. * Use `create(SetBlobArgsSchema)` to create a new message. */ -export const SetBlobArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 269); +export const SetBlobArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 269); /** * @generated from message agent.v1.SetBlobResult */ export type SetBlobResult = Message<"agent.v1.SetBlobResult"> & { - /** - * @generated from field: optional agent.v1.Error error = 1; - */ - error?: Error; + /** + * @generated from field: optional agent.v1.Error error = 1; + */ + error?: Error | undefined; }; /** * Describes the message agent.v1.SetBlobResult. * Use `create(SetBlobResultSchema)` to create a new message. */ -export const SetBlobResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 270); +export const SetBlobResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 270); /** * @generated from message agent.v1.KvServerMessage */ export type KvServerMessage = Message<"agent.v1.KvServerMessage"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * Span context for distributed tracing - * - * @generated from field: optional agent.v1.SpanContext span_context = 4; - */ - spanContext?: SpanContext; + /** + * Span context for distributed tracing + * + * @generated from field: optional agent.v1.SpanContext span_context = 4; + */ + spanContext?: SpanContext | undefined; - /** - * @generated from oneof agent.v1.KvServerMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.GetBlobArgs get_blob_args = 2; - */ - value: GetBlobArgs; - case: "getBlobArgs"; - } - | { - /** - * @generated from field: agent.v1.SetBlobArgs set_blob_args = 3; - */ - value: SetBlobArgs; - case: "setBlobArgs"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.KvServerMessage.message + */ + message: { + /** + * @generated from field: agent.v1.GetBlobArgs get_blob_args = 2; + */ + value: GetBlobArgs; + case: "getBlobArgs"; + } | { + /** + * @generated from field: agent.v1.SetBlobArgs set_blob_args = 3; + */ + value: SetBlobArgs; + case: "setBlobArgs"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.KvServerMessage. * Use `create(KvServerMessageSchema)` to create a new message. */ -export const KvServerMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 271); +export const KvServerMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 271); /** * @generated from message agent.v1.KvClientMessage */ export type KvClientMessage = Message<"agent.v1.KvClientMessage"> & { - /** - * @generated from field: uint32 id = 1; - */ - id: number; + /** + * @generated from field: uint32 id = 1; + */ + id: number; - /** - * @generated from oneof agent.v1.KvClientMessage.message - */ - message: - | { - /** - * @generated from field: agent.v1.GetBlobResult get_blob_result = 2; - */ - value: GetBlobResult; - case: "getBlobResult"; - } - | { - /** - * @generated from field: agent.v1.SetBlobResult set_blob_result = 3; - */ - value: SetBlobResult; - case: "setBlobResult"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.KvClientMessage.message + */ + message: { + /** + * @generated from field: agent.v1.GetBlobResult get_blob_result = 2; + */ + value: GetBlobResult; + case: "getBlobResult"; + } | { + /** + * @generated from field: agent.v1.SetBlobResult set_blob_result = 3; + */ + value: SetBlobResult; + case: "setBlobResult"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.KvClientMessage. * Use `create(KvClientMessageSchema)` to create a new message. */ -export const KvClientMessageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 272); +export const KvClientMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 272); /** * @generated from message agent.v1.LsArgs */ export type LsArgs = Message<"agent.v1.LsArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: repeated string ignore = 2; - */ - ignore: string[]; + /** + * @generated from field: repeated string ignore = 2; + */ + ignore: string[]; - /** - * @generated from field: string tool_call_id = 3; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 3; + */ + toolCallId: string; - /** - * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 4; - */ - sandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 4; + */ + sandboxPolicy?: SandboxPolicy | undefined; - /** - * defaults to 5000ms - * - * @generated from field: optional uint32 timeout_ms = 5; - */ - timeoutMs?: number; + /** + * defaults to 5000ms + * + * @generated from field: optional uint32 timeout_ms = 5; + */ + timeoutMs?: number | undefined; }; /** * Describes the message agent.v1.LsArgs. * Use `create(LsArgsSchema)` to create a new message. */ -export const LsArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 273); +export const LsArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 273); /** * @generated from message agent.v1.LsResult */ export type LsResult = Message<"agent.v1.LsResult"> & { - /** - * @generated from oneof agent.v1.LsResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.LsSuccess success = 1; - */ - value: LsSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.LsError error = 2; - */ - value: LsError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.LsRejected rejected = 3; - */ - value: LsRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.LsTimeout timeout = 4; - */ - value: LsTimeout; - case: "timeout"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.LsResult.result + */ + result: { + /** + * @generated from field: agent.v1.LsSuccess success = 1; + */ + value: LsSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.LsError error = 2; + */ + value: LsError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.LsRejected rejected = 3; + */ + value: LsRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.LsTimeout timeout = 4; + */ + value: LsTimeout; + case: "timeout"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.LsResult. * Use `create(LsResultSchema)` to create a new message. */ -export const LsResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 274); +export const LsResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 274); /** * @generated from message agent.v1.LsSuccess */ export type LsSuccess = Message<"agent.v1.LsSuccess"> & { - /** - * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; - */ - directoryTreeRoot?: LsDirectoryTreeNode; + /** + * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; + */ + directoryTreeRoot?: LsDirectoryTreeNode | undefined; }; /** * Describes the message agent.v1.LsSuccess. * Use `create(LsSuccessSchema)` to create a new message. */ -export const LsSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 275); +export const LsSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 275); /** * @generated from message agent.v1.LsDirectoryTreeNode */ export type LsDirectoryTreeNode = Message<"agent.v1.LsDirectoryTreeNode"> & { - /** - * @generated from field: string abs_path = 1; - */ - absPath: string; + /** + * @generated from field: string abs_path = 1; + */ + absPath: string; - /** - * @generated from field: repeated agent.v1.LsDirectoryTreeNode children_dirs = 2; - */ - childrenDirs: LsDirectoryTreeNode[]; + /** + * @generated from field: repeated agent.v1.LsDirectoryTreeNode children_dirs = 2; + */ + childrenDirs: LsDirectoryTreeNode[]; - /** - * @generated from field: repeated agent.v1.LsDirectoryTreeNode_File children_files = 3; - */ - childrenFiles: LsDirectoryTreeNode_File[]; + /** + * @generated from field: repeated agent.v1.LsDirectoryTreeNode_File children_files = 3; + */ + childrenFiles: LsDirectoryTreeNode_File[]; - /** - * Proto doesn't allow repeated fields to be optional, so in case of empty children arrays, this fields indicates if it happens: `true` - because directory really doesn't have any children `false` - because we stopped traversal before getting to its children - * - * @generated from field: bool children_were_processed = 4; - */ - childrenWereProcessed: boolean; + /** + * Proto doesn't allow repeated fields to be optional, so in case of empty children arrays, this fields indicates if it happens: `true` - because directory really doesn't have any children `false` - because we stopped traversal before getting to its children + * + * @generated from field: bool children_were_processed = 4; + */ + childrenWereProcessed: boolean; - /** - * Count of extensions in the full sub-tree - * - * @generated from field: map full_subtree_extension_counts = 5; - */ - fullSubtreeExtensionCounts: { [key: string]: number }; + /** + * Count of extensions in the full sub-tree + * + * @generated from field: map full_subtree_extension_counts = 5; + */ + fullSubtreeExtensionCounts: { [key: string]: number }; - /** - * @generated from field: int32 num_files = 6; - */ - numFiles: number; + /** + * @generated from field: int32 num_files = 6; + */ + numFiles: number; }; /** * Describes the message agent.v1.LsDirectoryTreeNode. * Use `create(LsDirectoryTreeNodeSchema)` to create a new message. */ -export const LsDirectoryTreeNodeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 276); +export const LsDirectoryTreeNodeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 276); /** * @generated from message agent.v1.LsDirectoryTreeNode_File */ export type LsDirectoryTreeNode_File = Message<"agent.v1.LsDirectoryTreeNode_File"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: optional agent.v1.TerminalMetadata terminal_metadata = 2; - */ - terminalMetadata?: TerminalMetadata; + /** + * @generated from field: optional agent.v1.TerminalMetadata terminal_metadata = 2; + */ + terminalMetadata?: TerminalMetadata | undefined; }; /** * Describes the message agent.v1.LsDirectoryTreeNode_File. * Use `create(LsDirectoryTreeNode_FileSchema)` to create a new message. */ -export const LsDirectoryTreeNode_FileSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 277); +export const LsDirectoryTreeNode_FileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 277); /** * @generated from message agent.v1.LsError */ export type LsError = Message<"agent.v1.LsError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.LsError. * Use `create(LsErrorSchema)` to create a new message. */ -export const LsErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 278); +export const LsErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 278); /** * @generated from message agent.v1.LsRejected */ export type LsRejected = Message<"agent.v1.LsRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.LsRejected. * Use `create(LsRejectedSchema)` to create a new message. */ -export const LsRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 279); +export const LsRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 279); /** * Returned when ls operation timed out. Contains partial results gathered before timeout. @@ -8210,211 +8458,242 @@ export const LsRejectedSchema: GenMessage = /*@__PURE__*/ messageDes * @generated from message agent.v1.LsTimeout */ export type LsTimeout = Message<"agent.v1.LsTimeout"> & { - /** - * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; - */ - directoryTreeRoot?: LsDirectoryTreeNode; + /** + * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree_root = 1; + */ + directoryTreeRoot?: LsDirectoryTreeNode | undefined; }; /** * Describes the message agent.v1.LsTimeout. * Use `create(LsTimeoutSchema)` to create a new message. */ -export const LsTimeoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 280); +export const LsTimeoutSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 280); /** * @generated from message agent.v1.TerminalMetadata */ export type TerminalMetadata = Message<"agent.v1.TerminalMetadata"> & { - /** - * @generated from field: optional string cwd = 1; - */ - cwd?: string; + /** + * @generated from field: optional string cwd = 1; + */ + cwd?: string | undefined; - /** - * @generated from field: repeated agent.v1.TerminalMetadata_Command last_commands = 2; - */ - lastCommands: TerminalMetadata_Command[]; + /** + * @generated from field: repeated agent.v1.TerminalMetadata_Command last_commands = 2; + */ + lastCommands: TerminalMetadata_Command[]; - /** - * @generated from field: optional int64 last_modified_ms = 3; - */ - lastModifiedMs?: bigint; + /** + * @generated from field: optional int64 last_modified_ms = 3; + */ + lastModifiedMs?: bigint | undefined; - /** - * @generated from field: optional agent.v1.TerminalMetadata_Command current_command = 4; - */ - currentCommand?: TerminalMetadata_Command; + /** + * @generated from field: optional agent.v1.TerminalMetadata_Command current_command = 4; + */ + currentCommand?: TerminalMetadata_Command | undefined; }; /** * Describes the message agent.v1.TerminalMetadata. * Use `create(TerminalMetadataSchema)` to create a new message. */ -export const TerminalMetadataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 281); +export const TerminalMetadataSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 281); /** * @generated from message agent.v1.TerminalMetadata_Command */ export type TerminalMetadata_Command = Message<"agent.v1.TerminalMetadata_Command"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: optional int32 exit_code = 2; - */ - exitCode?: number; + /** + * @generated from field: optional int32 exit_code = 2; + */ + exitCode?: number | undefined; - /** - * @generated from field: optional int64 timestamp_ms = 3; - */ - timestampMs?: bigint; + /** + * @generated from field: optional int64 timestamp_ms = 3; + */ + timestampMs?: bigint | undefined; - /** - * @generated from field: optional int64 duration_ms = 4; - */ - durationMs?: bigint; + /** + * @generated from field: optional int64 duration_ms = 4; + */ + durationMs?: bigint | undefined; }; /** * Describes the message agent.v1.TerminalMetadata_Command. * Use `create(TerminalMetadata_CommandSchema)` to create a new message. */ -export const TerminalMetadata_CommandSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 282); +export const TerminalMetadata_CommandSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 282); /** * @generated from message agent.v1.LsToolCall */ export type LsToolCall = Message<"agent.v1.LsToolCall"> & { - /** - * @generated from field: agent.v1.LsArgs args = 1; - */ - args?: LsArgs; + /** + * @generated from field: agent.v1.LsArgs args = 1; + */ + args?: LsArgs | undefined; - /** - * @generated from field: agent.v1.LsResult result = 2; - */ - result?: LsResult; + /** + * @generated from field: agent.v1.LsResult result = 2; + */ + result?: LsResult | undefined; }; /** * Describes the message agent.v1.LsToolCall. * Use `create(LsToolCallSchema)` to create a new message. */ -export const LsToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 283); +export const LsToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 283); /** * @generated from message agent.v1.McpArgs */ export type McpArgs = Message<"agent.v1.McpArgs"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: map args = 2; - */ - args: { [key: string]: Uint8Array }; + /** + * @generated from field: map args = 2; + */ + args: { [key: string]: Uint8Array }; - /** - * @generated from field: string tool_call_id = 3; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 3; + */ + toolCallId: string; - /** - * @generated from field: string provider_identifier = 4; - */ - providerIdentifier: string; + /** + * @generated from field: string provider_identifier = 4; + */ + providerIdentifier: string; - /** - * @generated from field: string tool_name = 5; - */ - toolName: string; + /** + * @generated from field: string tool_name = 5; + */ + toolName: string; + + /** + * @generated from field: optional agent.v1.SmartModeApproval smart_mode_approval = 6; + */ + smartModeApproval?: SmartModeApproval | undefined; + + /** + * @generated from field: bool smart_mode_approval_only = 7; + */ + smartModeApprovalOnly: boolean; + + /** + * @generated from field: bool skip_approval = 8; + */ + skipApproval: boolean; + + /** + * @generated from field: string server_identifier = 9; + */ + serverIdentifier: string; }; /** * Describes the message agent.v1.McpArgs. * Use `create(McpArgsSchema)` to create a new message. */ -export const McpArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 284); +export const McpArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 284); /** * @generated from message agent.v1.McpResult */ export type McpResult = Message<"agent.v1.McpResult"> & { - /** - * @generated from oneof agent.v1.McpResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.McpSuccess success = 1; - */ - value: McpSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.McpError error = 2; - */ - value: McpError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.McpRejected rejected = 3; - */ - value: McpRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; - */ - value: McpPermissionDenied; - case: "permissionDenied"; - } - | { - /** - * @generated from field: agent.v1.McpToolNotFound tool_not_found = 5; - */ - value: McpToolNotFound; - case: "toolNotFound"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.McpResult.result + */ + result: { + /** + * @generated from field: agent.v1.McpSuccess success = 1; + */ + value: McpSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.McpError error = 2; + */ + value: McpError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.McpRejected rejected = 3; + */ + value: McpRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.McpPermissionDenied permission_denied = 4; + */ + value: McpPermissionDenied; + case: "permissionDenied"; + } | { + /** + * @generated from field: agent.v1.McpToolNotFound tool_not_found = 5; + */ + value: McpToolNotFound; + case: "toolNotFound"; + } | { + /** + * @generated from field: agent.v1.McpServerNotFound server_not_found = 6; + */ + value: McpServerNotFound; + case: "serverNotFound"; + } | { + /** + * @generated from field: agent.v1.McpApproved approved = 7; + */ + value: McpApproved; + case: "approved"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpResult. * Use `create(McpResultSchema)` to create a new message. */ -export const McpResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 285); +export const McpResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 285); /** * @generated from message agent.v1.McpToolNotFound */ export type McpToolNotFound = Message<"agent.v1.McpToolNotFound"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: repeated string available_tools = 2; - */ - availableTools: string[]; + /** + * @generated from field: repeated string available_tools = 2; + */ + availableTools: string[]; }; /** * Describes the message agent.v1.McpToolNotFound. * Use `create(McpToolNotFoundSchema)` to create a new message. */ -export const McpToolNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 286); +export const McpToolNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 286); /** * Text content item @@ -8422,24 +8701,25 @@ export const McpToolNotFoundSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.McpTextContent */ export type McpTextContent = Message<"agent.v1.McpTextContent"> & { - /** - * @generated from field: string text = 1; - */ - text: string; + /** + * @generated from field: string text = 1; + */ + text: string; - /** - * Optional file location for large outputs - * - * @generated from field: optional agent.v1.OutputLocation output_location = 2; - */ - outputLocation?: OutputLocation; + /** + * Optional file location for large outputs + * + * @generated from field: optional agent.v1.OutputLocation output_location = 2; + */ + outputLocation?: OutputLocation | undefined; }; /** * Describes the message agent.v1.McpTextContent. * Use `create(McpTextContentSchema)` to create a new message. */ -export const McpTextContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 287); +export const McpTextContentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 287); /** * Image content item @@ -8447,26 +8727,27 @@ export const McpTextContentSchema: GenMessage = /*@__PURE__*/ me * @generated from message agent.v1.McpImageContent */ export type McpImageContent = Message<"agent.v1.McpImageContent"> & { - /** - * Raw bytes of the image. In JSON, this will be base64-encoded. - * - * @generated from field: bytes data = 1; - */ - data: Uint8Array; + /** + * Raw bytes of the image. In JSON, this will be base64-encoded. + * + * @generated from field: bytes data = 1; + */ + data: Uint8Array; - /** - * Optional MIME type, e.g. "image/png" - * - * @generated from field: string mime_type = 2; - */ - mimeType: string; + /** + * Optional MIME type, e.g. "image/png" + * + * @generated from field: string mime_type = 2; + */ + mimeType: string; }; /** * Describes the message agent.v1.McpImageContent. * Use `create(McpImageContentSchema)` to create a new message. */ -export const McpImageContentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 288); +export const McpImageContentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 288); /** * A single tool result content item: either text or image @@ -8474,34 +8755,30 @@ export const McpImageContentSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.McpToolResultContentItem */ export type McpToolResultContentItem = Message<"agent.v1.McpToolResultContentItem"> & { - /** - * @generated from oneof agent.v1.McpToolResultContentItem.content - */ - content: - | { - /** - * @generated from field: agent.v1.McpTextContent text = 1; - */ - value: McpTextContent; - case: "text"; - } - | { - /** - * @generated from field: agent.v1.McpImageContent image = 2; - */ - value: McpImageContent; - case: "image"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.McpToolResultContentItem.content + */ + content: { + /** + * @generated from field: agent.v1.McpTextContent text = 1; + */ + value: McpTextContent; + case: "text"; + } | { + /** + * @generated from field: agent.v1.McpImageContent image = 2; + */ + value: McpImageContent; + case: "image"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.McpToolResultContentItem. * Use `create(McpToolResultContentItemSchema)` to create a new message. */ -export const McpToolResultContentItemSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 289); +export const McpToolResultContentItemSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 289); /** * Equivalent to the requested McpToolResult TypeScript type @@ -8509,80 +8786,84 @@ export const McpToolResultContentItemSchema: GenMessage & { - /** - * @generated from field: repeated agent.v1.McpToolResultContentItem content = 1; - */ - content: McpToolResultContentItem[]; + /** + * @generated from field: repeated agent.v1.McpToolResultContentItem content = 1; + */ + content: McpToolResultContentItem[]; - /** - * @generated from field: bool is_error = 2; - */ - isError: boolean; + /** + * @generated from field: bool is_error = 2; + */ + isError: boolean; }; /** * Describes the message agent.v1.McpSuccess. * Use `create(McpSuccessSchema)` to create a new message. */ -export const McpSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 290); +export const McpSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 290); /** * @generated from message agent.v1.McpError */ export type McpError = Message<"agent.v1.McpError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.McpError. * Use `create(McpErrorSchema)` to create a new message. */ -export const McpErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 291); +export const McpErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 291); /** * @generated from message agent.v1.McpRejected */ export type McpRejected = Message<"agent.v1.McpRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; - /** - * @generated from field: bool is_readonly = 2; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 2; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.McpRejected. * Use `create(McpRejectedSchema)` to create a new message. */ -export const McpRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 292); +export const McpRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 292); /** * @generated from message agent.v1.McpPermissionDenied */ export type McpPermissionDenied = Message<"agent.v1.McpPermissionDenied"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; - /** - * @generated from field: bool is_readonly = 2; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 2; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.McpPermissionDenied. * Use `create(McpPermissionDeniedSchema)` to create a new message. */ -export const McpPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 293); +export const McpPermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 293); /** * List MCP resources exec args @@ -8590,21 +8871,20 @@ export const McpPermissionDeniedSchema: GenMessage = /*@__P * @generated from message agent.v1.ListMcpResourcesExecArgs */ export type ListMcpResourcesExecArgs = Message<"agent.v1.ListMcpResourcesExecArgs"> & { - /** - * Optional server name to filter resources by - * - * @generated from field: optional string server = 1; - */ - server?: string; + /** + * Optional server name to filter resources by + * + * @generated from field: optional string server = 1; + */ + server?: string | undefined; }; /** * Describes the message agent.v1.ListMcpResourcesExecArgs. * Use `create(ListMcpResourcesExecArgsSchema)` to create a new message. */ -export const ListMcpResourcesExecArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 294); +export const ListMcpResourcesExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 294); /** * List MCP resources exec result @@ -8612,142 +8892,133 @@ export const ListMcpResourcesExecArgsSchema: GenMessage & { - /** - * @generated from oneof agent.v1.ListMcpResourcesExecResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ListMcpResourcesSuccess success = 1; - */ - value: ListMcpResourcesSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ListMcpResourcesError error = 2; - */ - value: ListMcpResourcesError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ListMcpResourcesRejected rejected = 3; - */ - value: ListMcpResourcesRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ListMcpResourcesExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.ListMcpResourcesSuccess success = 1; + */ + value: ListMcpResourcesSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ListMcpResourcesError error = 2; + */ + value: ListMcpResourcesError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ListMcpResourcesRejected rejected = 3; + */ + value: ListMcpResourcesRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ListMcpResourcesExecResult. * Use `create(ListMcpResourcesExecResultSchema)` to create a new message. */ -export const ListMcpResourcesExecResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 295); +export const ListMcpResourcesExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 295); /** * @generated from message agent.v1.ListMcpResourcesExecResult_McpResource */ export type ListMcpResourcesExecResult_McpResource = Message<"agent.v1.ListMcpResourcesExecResult_McpResource"> & { - /** - * @generated from field: string uri = 1; - */ - uri: string; + /** + * @generated from field: string uri = 1; + */ + uri: string; - /** - * @generated from field: optional string name = 2; - */ - name?: string; + /** + * @generated from field: optional string name = 2; + */ + name?: string | undefined; - /** - * @generated from field: optional string description = 3; - */ - description?: string; + /** + * @generated from field: optional string description = 3; + */ + description?: string | undefined; - /** - * @generated from field: optional string mime_type = 4; - */ - mimeType?: string; + /** + * @generated from field: optional string mime_type = 4; + */ + mimeType?: string | undefined; - /** - * Server name that provides this resource - * - * @generated from field: string server = 5; - */ - server: string; + /** + * Server name that provides this resource + * + * @generated from field: string server = 5; + */ + server: string; - /** - * Additional metadata - * - * @generated from field: map annotations = 6; - */ - annotations: { [key: string]: string }; + /** + * Additional metadata + * + * @generated from field: map annotations = 6; + */ + annotations: { [key: string]: string }; }; /** * Describes the message agent.v1.ListMcpResourcesExecResult_McpResource. * Use `create(ListMcpResourcesExecResult_McpResourceSchema)` to create a new message. */ -export const ListMcpResourcesExecResult_McpResourceSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 296); +export const ListMcpResourcesExecResult_McpResourceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 296); /** * @generated from message agent.v1.ListMcpResourcesSuccess */ export type ListMcpResourcesSuccess = Message<"agent.v1.ListMcpResourcesSuccess"> & { - /** - * @generated from field: repeated agent.v1.ListMcpResourcesExecResult_McpResource resources = 1; - */ - resources: ListMcpResourcesExecResult_McpResource[]; + /** + * @generated from field: repeated agent.v1.ListMcpResourcesExecResult_McpResource resources = 1; + */ + resources: ListMcpResourcesExecResult_McpResource[]; }; /** * Describes the message agent.v1.ListMcpResourcesSuccess. * Use `create(ListMcpResourcesSuccessSchema)` to create a new message. */ -export const ListMcpResourcesSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 297); +export const ListMcpResourcesSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 297); /** * @generated from message agent.v1.ListMcpResourcesError */ export type ListMcpResourcesError = Message<"agent.v1.ListMcpResourcesError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.ListMcpResourcesError. * Use `create(ListMcpResourcesErrorSchema)` to create a new message. */ -export const ListMcpResourcesErrorSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 298); +export const ListMcpResourcesErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 298); /** * @generated from message agent.v1.ListMcpResourcesRejected */ export type ListMcpResourcesRejected = Message<"agent.v1.ListMcpResourcesRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.ListMcpResourcesRejected. * Use `create(ListMcpResourcesRejectedSchema)` to create a new message. */ -export const ListMcpResourcesRejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 299); +export const ListMcpResourcesRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 299); /** * Read MCP resource exec args @@ -8755,35 +9026,44 @@ export const ListMcpResourcesRejectedSchema: GenMessage & { - /** - * Required server name - * - * @generated from field: string server = 1; - */ - server: string; + /** + * Required server name + * + * @generated from field: string server = 1; + */ + server: string; - /** - * Required resource URI - * - * @generated from field: string uri = 2; - */ - uri: string; + /** + * Required resource URI + * + * @generated from field: string uri = 2; + */ + uri: string; - /** - * Optional: when set, the resource will be downloaded to this path relative to the workspace, and the content will not be returned to the model. - * - * @generated from field: optional string download_path = 3; - */ - downloadPath?: string; + /** + * Optional: when set, the resource will be downloaded to this path relative to the workspace, and the content will not be returned to the model. + * + * @generated from field: optional string download_path = 3; + */ + downloadPath?: string | undefined; + + /** + * @generated from field: string tool_call_id = 4; + */ + toolCallId: string; + + /** + * @generated from field: optional agent.v1.SmartModeApproval smart_mode_approval = 5; + */ + smartModeApproval?: SmartModeApproval | undefined; }; /** * Describes the message agent.v1.ReadMcpResourceExecArgs. * Use `create(ReadMcpResourceExecArgsSchema)` to create a new message. */ -export const ReadMcpResourceExecArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 300); +export const ReadMcpResourceExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 300); /** * Read MCP resource exec result @@ -8791,229 +9071,230 @@ export const ReadMcpResourceExecArgsSchema: GenMessage * @generated from message agent.v1.ReadMcpResourceExecResult */ export type ReadMcpResourceExecResult = Message<"agent.v1.ReadMcpResourceExecResult"> & { - /** - * @generated from oneof agent.v1.ReadMcpResourceExecResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReadMcpResourceSuccess success = 1; - */ - value: ReadMcpResourceSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceError error = 2; - */ - value: ReadMcpResourceError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceRejected rejected = 3; - */ - value: ReadMcpResourceRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.ReadMcpResourceNotFound not_found = 4; - */ - value: ReadMcpResourceNotFound; - case: "notFound"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadMcpResourceExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReadMcpResourceSuccess success = 1; + */ + value: ReadMcpResourceSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceError error = 2; + */ + value: ReadMcpResourceError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceRejected rejected = 3; + */ + value: ReadMcpResourceRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.ReadMcpResourceNotFound not_found = 4; + */ + value: ReadMcpResourceNotFound; + case: "notFound"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadMcpResourceExecResult. * Use `create(ReadMcpResourceExecResultSchema)` to create a new message. */ -export const ReadMcpResourceExecResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 301); +export const ReadMcpResourceExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 301); /** * @generated from message agent.v1.ReadMcpResourceSuccess */ export type ReadMcpResourceSuccess = Message<"agent.v1.ReadMcpResourceSuccess"> & { - /** - * @generated from field: string uri = 1; - */ - uri: string; + /** + * @generated from field: string uri = 1; + */ + uri: string; - /** - * @generated from field: optional string name = 2; - */ - name?: string; + /** + * @generated from field: optional string name = 2; + */ + name?: string | undefined; - /** - * @generated from field: optional string description = 3; - */ - description?: string; + /** + * @generated from field: optional string description = 3; + */ + description?: string | undefined; - /** - * @generated from field: optional string mime_type = 4; - */ - mimeType?: string; + /** + * @generated from field: optional string mime_type = 4; + */ + mimeType?: string | undefined; - /** - * Additional metadata - * - * @generated from field: map annotations = 7; - */ - annotations: { [key: string]: string }; + /** + * Additional metadata + * + * @generated from field: map annotations = 7; + */ + annotations: { [key: string]: string }; - /** - * If set, resource was downloaded to this path - * - * @generated from field: optional string download_path = 8; - */ - downloadPath?: string; + /** + * If set, resource was downloaded to this path + * + * @generated from field: optional string download_path = 8; + */ + downloadPath?: string | undefined; - /** - * @generated from oneof agent.v1.ReadMcpResourceSuccess.content - */ - content: - | { - /** - * @generated from field: string text = 5; - */ - value: string; - case: "text"; - } - | { - /** - * @generated from field: bytes blob = 6; - */ - value: Uint8Array; - case: "blob"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadMcpResourceSuccess.content + */ + content: { + /** + * @generated from field: string text = 5; + */ + value: string; + case: "text"; + } | { + /** + * @generated from field: bytes blob = 6; + */ + value: Uint8Array; + case: "blob"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: optional agent.v1.OutputLocation output_location = 9; + */ + outputLocation?: OutputLocation | undefined; }; /** * Describes the message agent.v1.ReadMcpResourceSuccess. * Use `create(ReadMcpResourceSuccessSchema)` to create a new message. */ -export const ReadMcpResourceSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 302); +export const ReadMcpResourceSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 302); /** * @generated from message agent.v1.ReadMcpResourceError */ export type ReadMcpResourceError = Message<"agent.v1.ReadMcpResourceError"> & { - /** - * @generated from field: string uri = 1; - */ - uri: string; + /** + * @generated from field: string uri = 1; + */ + uri: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.ReadMcpResourceError. * Use `create(ReadMcpResourceErrorSchema)` to create a new message. */ -export const ReadMcpResourceErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 303); +export const ReadMcpResourceErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 303); /** * @generated from message agent.v1.ReadMcpResourceRejected */ export type ReadMcpResourceRejected = Message<"agent.v1.ReadMcpResourceRejected"> & { - /** - * @generated from field: string uri = 1; - */ - uri: string; + /** + * @generated from field: string uri = 1; + */ + uri: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.ReadMcpResourceRejected. * Use `create(ReadMcpResourceRejectedSchema)` to create a new message. */ -export const ReadMcpResourceRejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 304); +export const ReadMcpResourceRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 304); /** * @generated from message agent.v1.ReadMcpResourceNotFound */ export type ReadMcpResourceNotFound = Message<"agent.v1.ReadMcpResourceNotFound"> & { - /** - * @generated from field: string uri = 1; - */ - uri: string; + /** + * @generated from field: string uri = 1; + */ + uri: string; }; /** * Describes the message agent.v1.ReadMcpResourceNotFound. * Use `create(ReadMcpResourceNotFoundSchema)` to create a new message. */ -export const ReadMcpResourceNotFoundSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 305); +export const ReadMcpResourceNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 305); /** * @generated from message agent.v1.McpToolDefinition */ export type McpToolDefinition = Message<"agent.v1.McpToolDefinition"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: string provider_identifier = 4; - */ - providerIdentifier: string; + /** + * @generated from field: string provider_identifier = 4; + */ + providerIdentifier: string; - /** - * @generated from field: string tool_name = 5; - */ - toolName: string; + /** + * @generated from field: string tool_name = 5; + */ + toolName: string; - /** - * @generated from field: string description = 2; - */ - description: string; + /** + * @generated from field: string description = 2; + */ + description: string; - /** - * @generated from field: bytes input_schema = 3; - */ - inputSchema: Uint8Array; + /** + * @generated from field: bytes input_schema = 3; + */ + inputSchema: Uint8Array; + + /** + * @generated from field: optional string input_schema_json = 6; + */ + inputSchemaJson?: string | undefined; }; /** * Describes the message agent.v1.McpToolDefinition. * Use `create(McpToolDefinitionSchema)` to create a new message. */ -export const McpToolDefinitionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 306); +export const McpToolDefinitionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 306); /** * @generated from message agent.v1.McpTools */ export type McpTools = Message<"agent.v1.McpTools"> & { - /** - * @generated from field: repeated agent.v1.McpToolDefinition mcp_tools = 1; - */ - mcpTools: McpToolDefinition[]; + /** + * @generated from field: repeated agent.v1.McpToolDefinition mcp_tools = 1; + */ + mcpTools: McpToolDefinition[]; }; /** * Describes the message agent.v1.McpTools. * Use `create(McpToolsSchema)` to create a new message. */ -export const McpToolsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 307); +export const McpToolsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 307); /** * Represents MCP-provided instructions from a specific server @@ -9021,775 +9302,828 @@ export const McpToolsSchema: GenMessage = /*@__PURE__*/ messageDesc(fi * @generated from message agent.v1.McpInstructions */ export type McpInstructions = Message<"agent.v1.McpInstructions"> & { - /** - * @generated from field: string server_name = 1; - */ - serverName: string; + /** + * @generated from field: string server_name = 1; + */ + serverName: string; - /** - * @generated from field: string instructions = 2; - */ - instructions: string; + /** + * @generated from field: string instructions = 2; + */ + instructions: string; + + /** + * @generated from field: string server_identifier = 3; + */ + serverIdentifier: string; }; /** * Describes the message agent.v1.McpInstructions. * Use `create(McpInstructionsSchema)` to create a new message. */ -export const McpInstructionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 308); +export const McpInstructionsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 308); /** * @generated from message agent.v1.McpDescriptor */ export type McpDescriptor = Message<"agent.v1.McpDescriptor"> & { - /** - * Display name of the MCP server associated with this folder. - * - * @generated from field: string server_name = 1; - */ - serverName: string; + /** + * Display name of the MCP server associated with this folder. + * + * @generated from field: string server_name = 1; + */ + serverName: string; - /** - * @generated from field: string server_identifier = 2; - */ - serverIdentifier: string; + /** + * @generated from field: string server_identifier = 2; + */ + serverIdentifier: string; - /** - * Absolute folder path where MCP tool descriptor JSON files are stored. - * - * @generated from field: optional string folder_path = 3; - */ - folderPath?: string; + /** + * Absolute folder path where MCP tool descriptor JSON files are stored. + * + * @generated from field: optional string folder_path = 3; + */ + folderPath?: string | undefined; - /** - * @generated from field: optional string server_use_instructions = 4; - */ - serverUseInstructions?: string; + /** + * @generated from field: optional string server_use_instructions = 4; + */ + serverUseInstructions?: string | undefined; - /** - * @generated from field: repeated agent.v1.McpToolDescriptor tools = 5; - */ - tools: McpToolDescriptor[]; + /** + * @generated from field: repeated agent.v1.McpToolDescriptor tools = 5; + */ + tools: McpToolDescriptor[]; + + /** + * @generated from field: optional string plugin = 7; + */ + plugin?: string | undefined; + + /** + * @generated from field: optional string marketplace = 8; + */ + marketplace?: string | undefined; + + /** + * @generated from field: optional string plugin_db_id = 9; + */ + pluginDbId?: string | undefined; + + /** + * @generated from field: optional string marketplace_id = 10; + */ + marketplaceId?: string | undefined; }; /** * Describes the message agent.v1.McpDescriptor. * Use `create(McpDescriptorSchema)` to create a new message. */ -export const McpDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 309); +export const McpDescriptorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 309); /** * @generated from message agent.v1.McpToolDescriptor */ export type McpToolDescriptor = Message<"agent.v1.McpToolDescriptor"> & { - /** - * @generated from field: string tool_name = 1; - */ - toolName: string; + /** + * @generated from field: string tool_name = 1; + */ + toolName: string; - /** - * @generated from field: optional string definition_path = 2; - */ - definitionPath?: string; + /** + * @generated from field: optional string definition_path = 2; + */ + definitionPath?: string | undefined; + + /** + * @generated from field: optional string description = 3; + */ + description?: string | undefined; + + /** + * @generated from field: optional string input_schema_json = 5; + */ + inputSchemaJson?: string | undefined; }; /** * Describes the message agent.v1.McpToolDescriptor. * Use `create(McpToolDescriptorSchema)` to create a new message. */ -export const McpToolDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 310); +export const McpToolDescriptorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 310); /** * @generated from message agent.v1.McpFileSystemOptions */ export type McpFileSystemOptions = Message<"agent.v1.McpFileSystemOptions"> & { - /** - * @generated from field: bool enabled = 1; - */ - enabled: boolean; + /** + * @generated from field: bool enabled = 1; + */ + enabled: boolean; - /** - * @generated from field: string workspace_project_dir = 2; - */ - workspaceProjectDir: string; + /** + * @generated from field: string workspace_project_dir = 2; + */ + workspaceProjectDir: string; - /** - * @generated from field: repeated agent.v1.McpDescriptor mcp_descriptors = 3; - */ - mcpDescriptors: McpDescriptor[]; + /** + * @generated from field: repeated agent.v1.McpDescriptor mcp_descriptors = 3; + */ + mcpDescriptors: McpDescriptor[]; }; /** * Describes the message agent.v1.McpFileSystemOptions. * Use `create(McpFileSystemOptionsSchema)` to create a new message. */ -export const McpFileSystemOptionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 311); +export const McpFileSystemOptionsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 311); /** * @generated from message agent.v1.ReadArgs */ export type ReadArgs = Message<"agent.v1.ReadArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; + + /** + * @generated from field: optional int32 offset = 4; + */ + offset?: number | undefined; + + /** + * @generated from field: optional uint32 limit = 5; + */ + limit?: number | undefined; + + /** + * @generated from field: optional string encoding_hint = 6; + */ + encodingHint?: string | undefined; }; /** * Describes the message agent.v1.ReadArgs. * Use `create(ReadArgsSchema)` to create a new message. */ -export const ReadArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 312); +export const ReadArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 312); /** * @generated from message agent.v1.ReadResult */ export type ReadResult = Message<"agent.v1.ReadResult"> & { - /** - * @generated from oneof agent.v1.ReadResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReadSuccess success = 1; - */ - value: ReadSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReadError error = 2; - */ - value: ReadError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.ReadRejected rejected = 3; - */ - value: ReadRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.ReadFileNotFound file_not_found = 4; - */ - value: ReadFileNotFound; - case: "fileNotFound"; - } - | { - /** - * @generated from field: agent.v1.ReadPermissionDenied permission_denied = 5; - */ - value: ReadPermissionDenied; - case: "permissionDenied"; - } - | { - /** - * @generated from field: agent.v1.ReadInvalidFile invalid_file = 6; - */ - value: ReadInvalidFile; - case: "invalidFile"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReadSuccess success = 1; + */ + value: ReadSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReadError error = 2; + */ + value: ReadError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.ReadRejected rejected = 3; + */ + value: ReadRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.ReadFileNotFound file_not_found = 4; + */ + value: ReadFileNotFound; + case: "fileNotFound"; + } | { + /** + * @generated from field: agent.v1.ReadPermissionDenied permission_denied = 5; + */ + value: ReadPermissionDenied; + case: "permissionDenied"; + } | { + /** + * @generated from field: agent.v1.ReadInvalidFile invalid_file = 6; + */ + value: ReadInvalidFile; + case: "invalidFile"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadResult. * Use `create(ReadResultSchema)` to create a new message. */ -export const ReadResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 313); +export const ReadResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 313); /** * @generated from message agent.v1.ReadSuccess */ export type ReadSuccess = Message<"agent.v1.ReadSuccess"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: int32 total_lines = 3; - */ - totalLines: number; + /** + * @generated from field: int32 total_lines = 3; + */ + totalLines: number; - /** - * @generated from field: int64 file_size = 4; - */ - fileSize: bigint; + /** + * @generated from field: int64 file_size = 4; + */ + fileSize: bigint; - /** - * true if the content was truncated due to size limits - * - * @generated from field: bool truncated = 6; - */ - truncated: boolean; + /** + * true if the content was truncated due to size limits + * + * @generated from field: bool truncated = 6; + */ + truncated: boolean; - /** - * Returns blob ID if the output was stored in the blob store. If provided, the output is stored separately from the rest of the tool result, and since it's already in the blob store, it need not be sent back to the client -- reducing bandwidth. - * - * @generated from field: optional bytes output_blob_id = 7; - */ - outputBlobId?: Uint8Array; + /** + * Returns blob ID if the output was stored in the blob store. If provided, the output is stored separately from the rest of the tool result, and since it's already in the blob store, it need not be sent back to the client -- reducing bandwidth. + * + * @generated from field: optional bytes output_blob_id = 7; + */ + outputBlobId?: Uint8Array | undefined; - /** - * @generated from oneof agent.v1.ReadSuccess.output - */ - output: - | { - /** - * @generated from field: string content = 2; - */ - value: string; - case: "content"; - } - | { - /** - * @generated from field: bytes data = 5; - */ - value: Uint8Array; - case: "data"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadSuccess.output + */ + output: { + /** + * @generated from field: string content = 2; + */ + value: string; + case: "content"; + } | { + /** + * @generated from field: bytes data = 5; + */ + value: Uint8Array; + case: "data"; + } | { case: undefined; value?: undefined }; + + /** + * @generated from field: bool range_applied = 8; + */ + rangeApplied: boolean; }; /** * Describes the message agent.v1.ReadSuccess. * Use `create(ReadSuccessSchema)` to create a new message. */ -export const ReadSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 314); +export const ReadSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 314); /** * @generated from message agent.v1.ReadError */ export type ReadError = Message<"agent.v1.ReadError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.ReadError. * Use `create(ReadErrorSchema)` to create a new message. */ -export const ReadErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 315); +export const ReadErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 315); /** * @generated from message agent.v1.ReadRejected */ export type ReadRejected = Message<"agent.v1.ReadRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.ReadRejected. * Use `create(ReadRejectedSchema)` to create a new message. */ -export const ReadRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 316); +export const ReadRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 316); /** * @generated from message agent.v1.ReadFileNotFound */ export type ReadFileNotFound = Message<"agent.v1.ReadFileNotFound"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.ReadFileNotFound. * Use `create(ReadFileNotFoundSchema)` to create a new message. */ -export const ReadFileNotFoundSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 317); +export const ReadFileNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 317); /** * @generated from message agent.v1.ReadPermissionDenied */ export type ReadPermissionDenied = Message<"agent.v1.ReadPermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.ReadPermissionDenied. * Use `create(ReadPermissionDeniedSchema)` to create a new message. */ -export const ReadPermissionDeniedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 318); +export const ReadPermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 318); /** * @generated from message agent.v1.ReadInvalidFile */ export type ReadInvalidFile = Message<"agent.v1.ReadInvalidFile"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * e.g., "Path is a directory, not a file" - * - * @generated from field: string reason = 2; - */ - reason: string; + /** + * e.g., "Path is a directory, not a file" + * + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.ReadInvalidFile. * Use `create(ReadInvalidFileSchema)` to create a new message. */ -export const ReadInvalidFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 319); +export const ReadInvalidFileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 319); /** * @generated from message agent.v1.ReadToolCall */ export type ReadToolCall = Message<"agent.v1.ReadToolCall"> & { - /** - * @generated from field: agent.v1.ReadToolArgs args = 1; - */ - args?: ReadToolArgs; + /** + * @generated from field: agent.v1.ReadToolArgs args = 1; + */ + args?: ReadToolArgs | undefined; - /** - * @generated from field: agent.v1.ReadToolResult result = 2; - */ - result?: ReadToolResult; + /** + * @generated from field: agent.v1.ReadToolResult result = 2; + */ + result?: ReadToolResult | undefined; }; /** * Describes the message agent.v1.ReadToolCall. * Use `create(ReadToolCallSchema)` to create a new message. */ -export const ReadToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 320); +export const ReadToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 320); /** * @generated from message agent.v1.ReadToolArgs */ export type ReadToolArgs = Message<"agent.v1.ReadToolArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: optional int32 offset = 2; - */ - offset?: number; + /** + * @generated from field: optional int32 offset = 2; + */ + offset?: number | undefined; - /** - * @generated from field: optional int32 limit = 3; - */ - limit?: number; + /** + * @generated from field: optional int32 limit = 3; + */ + limit?: number | undefined; }; /** * Describes the message agent.v1.ReadToolArgs. * Use `create(ReadToolArgsSchema)` to create a new message. */ -export const ReadToolArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 321); +export const ReadToolArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 321); /** * @generated from message agent.v1.ReadToolResult */ export type ReadToolResult = Message<"agent.v1.ReadToolResult"> & { - /** - * @generated from oneof agent.v1.ReadToolResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReadToolSuccess success = 1; - */ - value: ReadToolSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReadToolError error = 2; - */ - value: ReadToolError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadToolResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReadToolSuccess success = 1; + */ + value: ReadToolSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReadToolError error = 2; + */ + value: ReadToolError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadToolResult. * Use `create(ReadToolResultSchema)` to create a new message. */ -export const ReadToolResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 322); +export const ReadToolResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 322); /** * @generated from message agent.v1.ReadRange */ export type ReadRange = Message<"agent.v1.ReadRange"> & { - /** - * @generated from field: uint32 start_line = 1; - */ - startLine: number; + /** + * @generated from field: uint32 start_line = 1; + */ + startLine: number; - /** - * @generated from field: uint32 end_line = 2; - */ - endLine: number; + /** + * @generated from field: uint32 end_line = 2; + */ + endLine: number; }; /** * Describes the message agent.v1.ReadRange. * Use `create(ReadRangeSchema)` to create a new message. */ -export const ReadRangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 323); +export const ReadRangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 323); /** * @generated from message agent.v1.ReadToolSuccess */ export type ReadToolSuccess = Message<"agent.v1.ReadToolSuccess"> & { - /** - * @generated from field: bool is_empty = 2; - */ - isEmpty: boolean; + /** + * @generated from field: bool is_empty = 2; + */ + isEmpty: boolean; - /** - * @generated from field: bool exceeded_limit = 3; - */ - exceededLimit: boolean; + /** + * @generated from field: bool exceeded_limit = 3; + */ + exceededLimit: boolean; - /** - * @generated from field: uint32 total_lines = 4; - */ - totalLines: number; + /** + * @generated from field: uint32 total_lines = 4; + */ + totalLines: number; - /** - * @generated from field: uint32 file_size = 5; - */ - fileSize: number; + /** + * @generated from field: uint32 file_size = 5; + */ + fileSize: number; - /** - * @generated from field: string path = 7; - */ - path: string; + /** + * @generated from field: string path = 7; + */ + path: string; - /** - * @generated from field: optional agent.v1.ReadRange read_range = 8; - */ - readRange?: ReadRange; + /** + * @generated from field: optional agent.v1.ReadRange read_range = 8; + */ + readRange?: ReadRange | undefined; - /** - * @generated from oneof agent.v1.ReadToolSuccess.output - */ - output: - | { - /** - * @generated from field: string content = 1; - */ - value: string; - case: "content"; - } - | { - /** - * @generated from field: bytes data = 6; - */ - value: Uint8Array; - case: "data"; - } - | { - /** - * @generated from field: bytes data_blob_id = 9; - */ - value: Uint8Array; - case: "dataBlobId"; - } - | { - /** - * @generated from field: bytes content_blob_id = 10; - */ - value: Uint8Array; - case: "contentBlobId"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadToolSuccess.output + */ + output: { + /** + * @generated from field: string content = 1; + */ + value: string; + case: "content"; + } | { + /** + * @generated from field: bytes data = 6; + */ + value: Uint8Array; + case: "data"; + } | { + /** + * @generated from field: bytes data_blob_id = 9; + */ + value: Uint8Array; + case: "dataBlobId"; + } | { + /** + * @generated from field: bytes content_blob_id = 10; + */ + value: Uint8Array; + case: "contentBlobId"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadToolSuccess. * Use `create(ReadToolSuccessSchema)` to create a new message. */ -export const ReadToolSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 324); +export const ReadToolSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 324); /** * @generated from message agent.v1.ReadToolError */ export type ReadToolError = Message<"agent.v1.ReadToolError"> & { - /** - * @generated from field: string error_message = 1; - */ - errorMessage: string; + /** + * @generated from field: string error_message = 1; + */ + errorMessage: string; }; /** * Describes the message agent.v1.ReadToolError. * Use `create(ReadToolErrorSchema)` to create a new message. */ -export const ReadToolErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 325); +export const ReadToolErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 325); /** * @generated from message agent.v1.RecordScreenArgs */ export type RecordScreenArgs = Message<"agent.v1.RecordScreenArgs"> & { - /** - * @generated from field: int32 mode = 1; - */ - mode: number; + /** + * @generated from field: int32 mode = 1; + */ + mode: number; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; - /** - * Custom filename for SAVE_RECORDING mode - * - * @generated from field: optional string save_as_filename = 3; - */ - saveAsFilename?: string; + /** + * Custom filename for SAVE_RECORDING mode + * + * @generated from field: optional string save_as_filename = 3; + */ + saveAsFilename?: string | undefined; }; /** * Describes the message agent.v1.RecordScreenArgs. * Use `create(RecordScreenArgsSchema)` to create a new message. */ -export const RecordScreenArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 326); +export const RecordScreenArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 326); /** * @generated from message agent.v1.RecordScreenResult */ export type RecordScreenResult = Message<"agent.v1.RecordScreenResult"> & { - /** - * @generated from oneof agent.v1.RecordScreenResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.RecordScreenStartSuccess start_success = 1; - */ - value: RecordScreenStartSuccess; - case: "startSuccess"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenSaveSuccess save_success = 2; - */ - value: RecordScreenSaveSuccess; - case: "saveSuccess"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenDiscardSuccess discard_success = 3; - */ - value: RecordScreenDiscardSuccess; - case: "discardSuccess"; - } - | { - /** - * @generated from field: agent.v1.RecordScreenFailure failure = 4; - */ - value: RecordScreenFailure; - case: "failure"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.RecordScreenResult.result + */ + result: { + /** + * @generated from field: agent.v1.RecordScreenStartSuccess start_success = 1; + */ + value: RecordScreenStartSuccess; + case: "startSuccess"; + } | { + /** + * @generated from field: agent.v1.RecordScreenSaveSuccess save_success = 2; + */ + value: RecordScreenSaveSuccess; + case: "saveSuccess"; + } | { + /** + * @generated from field: agent.v1.RecordScreenDiscardSuccess discard_success = 3; + */ + value: RecordScreenDiscardSuccess; + case: "discardSuccess"; + } | { + /** + * @generated from field: agent.v1.RecordScreenFailure failure = 4; + */ + value: RecordScreenFailure; + case: "failure"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RecordScreenResult. * Use `create(RecordScreenResultSchema)` to create a new message. */ -export const RecordScreenResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 327); +export const RecordScreenResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 327); /** * @generated from message agent.v1.RecordScreenStartSuccess */ export type RecordScreenStartSuccess = Message<"agent.v1.RecordScreenStartSuccess"> & { - /** - * True if a prior recording was cancelled, false otherwise - * - * @generated from field: bool was_prior_recording_cancelled = 1; - */ - wasPriorRecordingCancelled: boolean; + /** + * True if a prior recording was cancelled, false otherwise + * + * @generated from field: bool was_prior_recording_cancelled = 1; + */ + wasPriorRecordingCancelled: boolean; - /** - * True if save_as_filename arg was passed to start tool and ignored - * - * @generated from field: bool was_save_as_filename_ignored = 2; - */ - wasSaveAsFilenameIgnored: boolean; + /** + * True if save_as_filename arg was passed to start tool and ignored + * + * @generated from field: bool was_save_as_filename_ignored = 2; + */ + wasSaveAsFilenameIgnored: boolean; }; /** * Describes the message agent.v1.RecordScreenStartSuccess. * Use `create(RecordScreenStartSuccessSchema)` to create a new message. */ -export const RecordScreenStartSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 328); +export const RecordScreenStartSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 328); /** * @generated from message agent.v1.RecordScreenSaveSuccess */ export type RecordScreenSaveSuccess = Message<"agent.v1.RecordScreenSaveSuccess"> & { - /** - * Path to the saved recording file - * - * @generated from field: string path = 1; - */ - path: string; + /** + * Path to the saved recording file + * + * @generated from field: string path = 1; + */ + path: string; - /** - * Duration of the recording in milliseconds - * - * @generated from field: int64 recording_duration_ms = 2; - */ - recordingDurationMs: bigint; + /** + * Duration of the recording in milliseconds + * + * @generated from field: int64 recording_duration_ms = 2; + */ + recordingDurationMs: bigint; - /** - * Set if save_as_filename was invalid and default path was used instead - * - * @generated from field: optional int32 requested_file_path_rejected_reason = 3; - */ - requestedFilePathRejectedReason?: number; + /** + * Set if save_as_filename was invalid and default path was used instead + * + * @generated from field: optional int32 requested_file_path_rejected_reason = 3; + */ + requestedFilePathRejectedReason?: number | undefined; }; /** * Describes the message agent.v1.RecordScreenSaveSuccess. * Use `create(RecordScreenSaveSuccessSchema)` to create a new message. */ -export const RecordScreenSaveSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 329); +export const RecordScreenSaveSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 329); /** * Empty message - recording discarded successfully * * @generated from message agent.v1.RecordScreenDiscardSuccess */ -export type RecordScreenDiscardSuccess = Message<"agent.v1.RecordScreenDiscardSuccess"> & {}; +export type RecordScreenDiscardSuccess = Message<"agent.v1.RecordScreenDiscardSuccess"> & { +}; /** * Describes the message agent.v1.RecordScreenDiscardSuccess. * Use `create(RecordScreenDiscardSuccessSchema)` to create a new message. */ -export const RecordScreenDiscardSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 330); +export const RecordScreenDiscardSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 330); /** * @generated from message agent.v1.RecordScreenFailure */ export type RecordScreenFailure = Message<"agent.v1.RecordScreenFailure"> & { - /** - * Error message - * - * @generated from field: string error = 1; - */ - error: string; + /** + * Error message + * + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.RecordScreenFailure. * Use `create(RecordScreenFailureSchema)` to create a new message. */ -export const RecordScreenFailureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 331); +export const RecordScreenFailureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 331); /** * @generated from message agent.v1.CursorPackagePrompt */ export type CursorPackagePrompt = Message<"agent.v1.CursorPackagePrompt"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: string file_path = 2; - */ - filePath: string; + /** + * @generated from field: string file_path = 2; + */ + filePath: string; }; /** * Describes the message agent.v1.CursorPackagePrompt. * Use `create(CursorPackagePromptSchema)` to create a new message. */ -export const CursorPackagePromptSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 332); +export const CursorPackagePromptSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 332); /** * @generated from message agent.v1.CursorPackage */ export type CursorPackage = Message<"agent.v1.CursorPackage"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: string description = 2; - */ - description: string; + /** + * @generated from field: string description = 2; + */ + description: string; - /** - * @generated from field: string folder_path = 3; - */ - folderPath: string; + /** + * @generated from field: string folder_path = 3; + */ + folderPath: string; - /** - * @generated from field: bool enabled = 4; - */ - enabled: boolean; + /** + * @generated from field: bool enabled = 4; + */ + enabled: boolean; - /** - * @generated from field: optional string parse_error = 5; - */ - parseError?: string; + /** + * @generated from field: optional string parse_error = 5; + */ + parseError?: string | undefined; - /** - * @generated from field: repeated agent.v1.CursorPackagePrompt prompts = 6; - */ - prompts: CursorPackagePrompt[]; + /** + * @generated from field: repeated agent.v1.CursorPackagePrompt prompts = 6; + */ + prompts: CursorPackagePrompt[]; - /** - * @generated from field: string readme_file_path = 7; - */ - readmeFilePath: string; + /** + * @generated from field: string readme_file_path = 7; + */ + readmeFilePath: string; - /** - * @generated from field: int32 package_type = 8; - */ - packageType: number; + /** + * @generated from field: int32 package_type = 8; + */ + packageType: number; }; /** * Describes the message agent.v1.CursorPackage. * Use `create(CursorPackageSchema)` to create a new message. */ -export const CursorPackageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 333); +export const CursorPackageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 333); /** * TODO: you should be able to override / configure this list in your .vscode settings not exactly sure what that should look like... but i guess you should be able to specify an override URL because we use URLs for identifying repos and maybe you should be able to specify additional buckets too... like in the jane street case: i guess jane street should have some default buckets @@ -9797,187 +10131,203 @@ export const CursorPackageSchema: GenMessage = /*@__PURE__*/ mess * @generated from message agent.v1.RepositoryIndexingInfo */ export type RepositoryIndexingInfo = Message<"agent.v1.RepositoryIndexingInfo"> & { - /** - * the relative path in the current workspace this is useful for locating the repo and identifying what repo a given file is in this should be unique for different repositories (I think) - * - * @generated from field: string relative_workspace_path = 1; - */ - relativeWorkspacePath: string; + /** + * the relative path in the current workspace this is useful for locating the repo and identifying what repo a given file is in this should be unique for different repositories (I think) + * + * @generated from field: string relative_workspace_path = 1; + */ + relativeWorkspacePath: string; - /** - * a git repo may have multiple remotes at the server we choose the remote (either origin, or the one we have embedded, or something else) invariant: len(remote_urls) == len(remote_names) - * - * @generated from field: repeated string remote_urls = 2; - */ - remoteUrls: string[]; + /** + * a git repo may have multiple remotes at the server we choose the remote (either origin, or the one we have embedded, or something else) invariant: len(remote_urls) == len(remote_names) + * + * @generated from field: repeated string remote_urls = 2; + */ + remoteUrls: string[]; - /** - * @generated from field: repeated string remote_names = 3; - */ - remoteNames: string[]; + /** + * @generated from field: repeated string remote_names = 3; + */ + remoteNames: string[]; - /** - * @generated from field: string repo_name = 4; - */ - repoName: string; + /** + * @generated from field: string repo_name = 4; + */ + repoName: string; - /** - * @generated from field: string repo_owner = 5; - */ - repoOwner: string; + /** + * @generated from field: string repo_owner = 5; + */ + repoOwner: string; - /** - * @generated from field: bool is_tracked = 6; - */ - isTracked: boolean; + /** + * @generated from field: bool is_tracked = 6; + */ + isTracked: boolean; - /** - * If this is local - * - * @generated from field: bool is_local = 7; - */ - isLocal: boolean; + /** + * If this is local + * + * @generated from field: bool is_local = 7; + */ + isLocal: boolean; - /** - * the orthogonal transform seed if sent from the client! if the client sends up the transform seed then we use that for the orthogonal transform instead of the value stored in the database - * - * @generated from field: optional double orthogonal_transform_seed = 8; - */ - orthogonalTransformSeed?: number; + /** + * the orthogonal transform seed if sent from the client! if the client sends up the transform seed then we use that for the orthogonal transform instead of the value stored in the database + * + * @generated from field: optional double orthogonal_transform_seed = 8; + */ + orthogonalTransformSeed?: number | undefined; - /** - * The encrypted workspace uri for the repository. - * - * @generated from field: string workspace_uri = 9; - */ - workspaceUri: string; + /** + * The encrypted workspace uri for the repository. + * + * @generated from field: string workspace_uri = 9; + */ + workspaceUri: string; - /** - * The encryption key for partial paths - * - * @generated from field: string path_encryption_key = 10; - */ - pathEncryptionKey: string; + /** + * The encryption key for partial paths + * + * @generated from field: string path_encryption_key = 10; + */ + pathEncryptionKey: string; }; /** * Describes the message agent.v1.RepositoryIndexingInfo. * Use `create(RepositoryIndexingInfoSchema)` to create a new message. */ -export const RepositoryIndexingInfoSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 334); +export const RepositoryIndexingInfoSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 334); /** * @generated from message agent.v1.RequestContextArgs */ export type RequestContextArgs = Message<"agent.v1.RequestContextArgs"> & { - /** - * @generated from field: optional string notes_session_id = 2; - */ - notesSessionId?: string; + /** + * @generated from field: optional string notes_session_id = 2; + */ + notesSessionId?: string | undefined; - /** - * @generated from field: optional string workspace_id = 3; - */ - workspaceId?: string; + /** + * @generated from field: optional string workspace_id = 3; + */ + workspaceId?: string | undefined; + + /** + * @generated from field: optional string read_only_pinned_tree_sha = 4; + */ + readOnlyPinnedTreeSha?: string | undefined; + + /** + * @generated from field: optional string read_only_plugin_cache_root = 5; + */ + readOnlyPluginCacheRoot?: string | undefined; + + /** + * @generated from field: optional bool use_cached = 7; + */ + useCached?: boolean | undefined; }; /** * Describes the message agent.v1.RequestContextArgs. * Use `create(RequestContextArgsSchema)` to create a new message. */ -export const RequestContextArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 335); +export const RequestContextArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 335); /** * @generated from message agent.v1.RequestContextResult */ export type RequestContextResult = Message<"agent.v1.RequestContextResult"> & { - /** - * @generated from oneof agent.v1.RequestContextResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.RequestContextSuccess success = 1; - */ - value: RequestContextSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.RequestContextError error = 2; - */ - value: RequestContextError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.RequestContextRejected rejected = 3; - */ - value: RequestContextRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.RequestContextResult.result + */ + result: { + /** + * @generated from field: agent.v1.RequestContextSuccess success = 1; + */ + value: RequestContextSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.RequestContextError error = 2; + */ + value: RequestContextError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.RequestContextRejected rejected = 3; + */ + value: RequestContextRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.RequestContextResult. * Use `create(RequestContextResultSchema)` to create a new message. */ -export const RequestContextResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 336); +export const RequestContextResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 336); /** * @generated from message agent.v1.RequestContextSuccess */ export type RequestContextSuccess = Message<"agent.v1.RequestContextSuccess"> & { - /** - * @generated from field: agent.v1.RequestContext request_context = 1; - */ - requestContext?: RequestContext; + /** + * @generated from field: agent.v1.RequestContext request_context = 1; + */ + requestContext?: RequestContext | undefined; + + /** + * @generated from field: optional bool served_from_disk_cache = 2; + */ + servedFromDiskCache?: boolean | undefined; }; /** * Describes the message agent.v1.RequestContextSuccess. * Use `create(RequestContextSuccessSchema)` to create a new message. */ -export const RequestContextSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 337); +export const RequestContextSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 337); /** * @generated from message agent.v1.RequestContextError */ export type RequestContextError = Message<"agent.v1.RequestContextError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.RequestContextError. * Use `create(RequestContextErrorSchema)` to create a new message. */ -export const RequestContextErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 338); +export const RequestContextErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 338); /** * @generated from message agent.v1.RequestContextRejected */ export type RequestContextRejected = Message<"agent.v1.RequestContextRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.RequestContextRejected. * Use `create(RequestContextRejectedSchema)` to create a new message. */ -export const RequestContextRejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 339); +export const RequestContextRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 339); /** * same as SelectedImage, but with the data field is the full image data @@ -9985,63 +10335,65 @@ export const RequestContextRejectedSchema: GenMessage = * @generated from message agent.v1.ImageProto */ export type ImageProto = Message<"agent.v1.ImageProto"> & { - /** - * @generated from field: bytes data = 1; - */ - data: Uint8Array; + /** + * @generated from field: bytes data = 1; + */ + data: Uint8Array; - /** - * @generated from field: string uuid = 2; - */ - uuid: string; + /** + * @generated from field: string uuid = 2; + */ + uuid: string; - /** - * @generated from field: string path = 3; - */ - path: string; + /** + * @generated from field: string path = 3; + */ + path: string; - /** - * @generated from field: agent.v1.ImageProto_Dimension dimension = 4; - */ - dimension?: ImageProto_Dimension; + /** + * @generated from field: agent.v1.ImageProto_Dimension dimension = 4; + */ + dimension?: ImageProto_Dimension | undefined; - /** - * @generated from field: optional string task_specific_description = 6; - */ - taskSpecificDescription?: string; + /** + * @generated from field: optional string task_specific_description = 6; + */ + taskSpecificDescription?: string | undefined; - /** - * @generated from field: string mime_type = 7; - */ - mimeType: string; + /** + * @generated from field: string mime_type = 7; + */ + mimeType: string; }; /** * Describes the message agent.v1.ImageProto. * Use `create(ImageProtoSchema)` to create a new message. */ -export const ImageProtoSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 340); +export const ImageProtoSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 340); /** * @generated from message agent.v1.ImageProto_Dimension */ export type ImageProto_Dimension = Message<"agent.v1.ImageProto_Dimension"> & { - /** - * @generated from field: int32 width = 1; - */ - width: number; + /** + * @generated from field: int32 width = 1; + */ + width: number; - /** - * @generated from field: int32 height = 2; - */ - height: number; + /** + * @generated from field: int32 height = 2; + */ + height: number; }; /** * Describes the message agent.v1.ImageProto_Dimension. * Use `create(ImageProto_DimensionSchema)` to create a new message. */ -export const ImageProto_DimensionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 341); +export const ImageProto_DimensionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 341); /** * Git repository information for a workspace @@ -10049,32 +10401,33 @@ export const ImageProto_DimensionSchema: GenMessage = /*@_ * @generated from message agent.v1.GitRepoInfo */ export type GitRepoInfo = Message<"agent.v1.GitRepoInfo"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string status = 2; - */ - status: string; + /** + * @generated from field: string status = 2; + */ + status: string; - /** - * @generated from field: string branch_name = 3; - */ - branchName: string; + /** + * @generated from field: string branch_name = 3; + */ + branchName: string; - /** - * @generated from field: optional string remote_url = 4; - */ - remoteUrl?: string; + /** + * @generated from field: optional string remote_url = 4; + */ + remoteUrl?: string | undefined; }; /** * Describes the message agent.v1.GitRepoInfo. * Use `create(GitRepoInfoSchema)` to create a new message. */ -export const GitRepoInfoSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 342); +export const GitRepoInfoSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 342); /** * Environment details for system prompt/context @@ -10082,364 +10435,367 @@ export const GitRepoInfoSchema: GenMessage = /*@__PURE__*/ messageD * @generated from message agent.v1.RequestContextEnv */ export type RequestContextEnv = Message<"agent.v1.RequestContextEnv"> & { - /** - * @generated from field: string os_version = 1; - */ - osVersion: string; + /** + * @generated from field: string os_version = 1; + */ + osVersion: string; - /** - * @generated from field: repeated string workspace_paths = 2; - */ - workspacePaths: string[]; + /** + * @generated from field: repeated string workspace_paths = 2; + */ + workspacePaths: string[]; - /** - * @generated from field: string shell = 3; - */ - shell: string; + /** + * @generated from field: string shell = 3; + */ + shell: string; - /** - * @generated from field: bool sandbox_enabled = 5; - */ - sandboxEnabled: boolean; + /** + * @generated from field: bool sandbox_enabled = 5; + */ + sandboxEnabled: boolean; - /** - * @generated from field: string terminals_folder = 7; - */ - terminalsFolder: string; + /** + * @generated from field: string terminals_folder = 7; + */ + terminalsFolder: string; - /** - * @generated from field: string agent_shared_notes_folder = 8; - */ - agentSharedNotesFolder: string; + /** + * @generated from field: string agent_shared_notes_folder = 8; + */ + agentSharedNotesFolder: string; - /** - * @generated from field: string agent_conversation_notes_folder = 9; - */ - agentConversationNotesFolder: string; + /** + * @generated from field: string agent_conversation_notes_folder = 9; + */ + agentConversationNotesFolder: string; - /** - * @generated from field: string time_zone = 10; - */ - timeZone: string; + /** + * @generated from field: string time_zone = 10; + */ + timeZone: string; - /** - * Project-specific folder for storing artifacts, computed client-side as ~/.cursor/projects/{slug}/ - * - * @generated from field: string project_folder = 11; - */ - projectFolder: string; + /** + * Project-specific folder for storing artifacts, computed client-side as ~/.cursor/projects/{slug}/ + * + * @generated from field: string project_folder = 11; + */ + projectFolder: string; - /** - * Folder where agent conversation transcripts are stored - * - * @generated from field: string agent_transcripts_folder = 12; - */ - agentTranscriptsFolder: string; + /** + * Folder where agent conversation transcripts are stored + * + * @generated from field: string agent_transcripts_folder = 12; + */ + agentTranscriptsFolder: string; }; /** * Describes the message agent.v1.RequestContextEnv. * Use `create(RequestContextEnvSchema)` to create a new message. */ -export const RequestContextEnvSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 343); +export const RequestContextEnvSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 343); /** * @generated from message agent.v1.DebugModeConfig */ export type DebugModeConfig = Message<"agent.v1.DebugModeConfig"> & { - /** - * @generated from field: string log_path = 1; - */ - logPath: string; + /** + * @generated from field: string log_path = 1; + */ + logPath: string; - /** - * @generated from field: string server_endpoint = 2; - */ - serverEndpoint: string; + /** + * @generated from field: string server_endpoint = 2; + */ + serverEndpoint: string; }; /** * Describes the message agent.v1.DebugModeConfig. * Use `create(DebugModeConfigSchema)` to create a new message. */ -export const DebugModeConfigSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 344); +export const DebugModeConfigSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 344); /** * @generated from message agent.v1.SkillDescriptor */ export type SkillDescriptor = Message<"agent.v1.SkillDescriptor"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: string description = 2; - */ - description: string; + /** + * @generated from field: string description = 2; + */ + description: string; - /** - * @generated from field: string folder_path = 3; - */ - folderPath: string; + /** + * @generated from field: string folder_path = 3; + */ + folderPath: string; - /** - * @generated from field: bool enabled = 4; - */ - enabled: boolean; + /** + * @generated from field: bool enabled = 4; + */ + enabled: boolean; - /** - * @generated from field: optional string parse_error = 5; - */ - parseError?: string; + /** + * @generated from field: optional string parse_error = 5; + */ + parseError?: string | undefined; - /** - * @generated from field: string readme_file_path = 6; - */ - readmeFilePath: string; + /** + * @generated from field: string readme_file_path = 6; + */ + readmeFilePath: string; - /** - * @generated from field: int32 package_type = 7; - */ - packageType: number; + /** + * @generated from field: int32 package_type = 7; + */ + packageType: number; }; /** * Describes the message agent.v1.SkillDescriptor. * Use `create(SkillDescriptorSchema)` to create a new message. */ -export const SkillDescriptorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 345); +export const SkillDescriptorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 345); /** * @generated from message agent.v1.SkillOptions */ export type SkillOptions = Message<"agent.v1.SkillOptions"> & { - /** - * @generated from field: repeated agent.v1.SkillDescriptor skill_descriptors = 1; - */ - skillDescriptors: SkillDescriptor[]; + /** + * @generated from field: repeated agent.v1.SkillDescriptor skill_descriptors = 1; + */ + skillDescriptors: SkillDescriptor[]; }; /** * Describes the message agent.v1.SkillOptions. * Use `create(SkillOptionsSchema)` to create a new message. */ -export const SkillOptionsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 346); +export const SkillOptionsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 346); /** * @generated from message agent.v1.RequestContext */ export type RequestContext = Message<"agent.v1.RequestContext"> & { - /** - * All rules, categorized by the embedded type - * - * @generated from field: repeated agent.v1.CursorRule rules = 2; - */ - rules: CursorRule[]; + /** + * All rules, categorized by the embedded type + * + * @generated from field: repeated agent.v1.CursorRule rules = 2; + */ + rules: CursorRule[]; - /** - * @generated from field: agent.v1.RequestContextEnv env = 4; - */ - env?: RequestContextEnv; + /** + * @generated from field: agent.v1.RequestContextEnv env = 4; + */ + env?: RequestContextEnv | undefined; - /** - * @generated from field: repeated agent.v1.RepositoryIndexingInfo repository_info = 6; - */ - repositoryInfo: RepositoryIndexingInfo[]; + /** + * @generated from field: repeated agent.v1.RepositoryIndexingInfo repository_info = 6; + */ + repositoryInfo: RepositoryIndexingInfo[]; - /** - * @generated from field: repeated agent.v1.McpToolDefinition tools = 7; - */ - tools: McpToolDefinition[]; + /** + * @generated from field: repeated agent.v1.McpToolDefinition tools = 7; + */ + tools: McpToolDefinition[]; - /** - * @generated from field: optional string conversation_notes_listing = 8; - */ - conversationNotesListing?: string; + /** + * @generated from field: optional string conversation_notes_listing = 8; + */ + conversationNotesListing?: string | undefined; - /** - * @generated from field: optional string shared_notes_listing = 9; - */ - sharedNotesListing?: string; + /** + * @generated from field: optional string shared_notes_listing = 9; + */ + sharedNotesListing?: string | undefined; - /** - * @generated from field: repeated agent.v1.GitRepoInfo git_repos = 11; - */ - gitRepos: GitRepoInfo[]; + /** + * @generated from field: repeated agent.v1.GitRepoInfo git_repos = 11; + */ + gitRepos: GitRepoInfo[]; - /** - * @generated from field: repeated agent.v1.LsDirectoryTreeNode project_layouts = 13; - */ - projectLayouts: LsDirectoryTreeNode[]; + /** + * @generated from field: repeated agent.v1.LsDirectoryTreeNode project_layouts = 13; + */ + projectLayouts: LsDirectoryTreeNode[]; - /** - * @generated from field: repeated agent.v1.McpInstructions mcp_instructions = 14; - */ - mcpInstructions: McpInstructions[]; + /** + * @generated from field: repeated agent.v1.McpInstructions mcp_instructions = 14; + */ + mcpInstructions: McpInstructions[]; - /** - * @generated from field: optional agent.v1.DebugModeConfig debug_mode_config = 15; - */ - debugModeConfig?: DebugModeConfig; + /** + * @generated from field: optional agent.v1.DebugModeConfig debug_mode_config = 15; + */ + debugModeConfig?: DebugModeConfig | undefined; - /** - * @generated from field: optional string cloud_rule = 16; - */ - cloudRule?: string; + /** + * @generated from field: optional string cloud_rule = 16; + */ + cloudRule?: string | undefined; - /** - * @generated from field: optional bool web_search_enabled = 17; - */ - webSearchEnabled?: boolean; + /** + * @generated from field: optional bool web_search_enabled = 17; + */ + webSearchEnabled?: boolean | undefined; - /** - * @generated from field: optional agent.v1.SkillOptions skill_options = 18; - */ - skillOptions?: SkillOptions; + /** + * @generated from field: optional agent.v1.SkillOptions skill_options = 18; + */ + skillOptions?: SkillOptions | undefined; - /** - * @generated from field: optional bool repository_info_should_query_prod = 19; - */ - repositoryInfoShouldQueryProd?: boolean; + /** + * @generated from field: optional bool repository_info_should_query_prod = 19; + */ + repositoryInfoShouldQueryProd?: boolean | undefined; - /** - * @generated from field: map file_contents = 20; - */ - fileContents: { [key: string]: string }; + /** + * @generated from field: map file_contents = 20; + */ + fileContents: { [key: string]: string }; - /** - * Content of the user-intent/index.md file summarizing past conversations - * - * @generated from field: optional string user_intent_summary = 21; - */ - userIntentSummary?: string; + /** + * Content of the user-intent/index.md file summarizing past conversations + * + * @generated from field: optional string user_intent_summary = 21; + */ + userIntentSummary?: string | undefined; - /** - * Local custom subagent definitions loaded from workspace configuration - * - * @generated from field: repeated agent.v1.CustomSubagent custom_subagents = 22; - */ - customSubagents: CustomSubagent[]; + /** + * Local custom subagent definitions loaded from workspace configuration + * + * @generated from field: repeated agent.v1.CustomSubagent custom_subagents = 22; + */ + customSubagents: CustomSubagent[]; - /** - * MCP file system options for agent MCP tool descriptor access - * - * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 23; - */ - mcpFileSystemOptions?: McpFileSystemOptions; + /** + * MCP file system options for agent MCP tool descriptor access + * + * @generated from field: optional agent.v1.McpFileSystemOptions mcp_file_system_options = 23; + */ + mcpFileSystemOptions?: McpFileSystemOptions | undefined; }; /** * Describes the message agent.v1.RequestContext. * Use `create(RequestContextSchema)` to create a new message. */ -export const RequestContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 347); +export const RequestContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 347); /** * @generated from message agent.v1.SandboxPolicy */ export type SandboxPolicy = Message<"agent.v1.SandboxPolicy"> & { - /** - * @generated from field: int32 type = 1; - */ - type: number; + /** + * @generated from field: int32 type = 1; + */ + type: number; - /** - * @generated from field: optional bool network_access = 2; - */ - networkAccess?: boolean; + /** + * @generated from field: optional bool network_access = 2; + */ + networkAccess?: boolean | undefined; - /** - * @generated from field: repeated string additional_readwrite_paths = 3; - */ - additionalReadwritePaths: string[]; + /** + * @generated from field: repeated string additional_readwrite_paths = 3; + */ + additionalReadwritePaths: string[]; - /** - * @generated from field: repeated string additional_readonly_paths = 4; - */ - additionalReadonlyPaths: string[]; + /** + * @generated from field: repeated string additional_readonly_paths = 4; + */ + additionalReadonlyPaths: string[]; - /** - * @generated from field: optional string debug_output_dir = 5; - */ - debugOutputDir?: string; + /** + * @generated from field: optional string debug_output_dir = 5; + */ + debugOutputDir?: string | undefined; - /** - * @generated from field: optional bool block_git_writes = 6; - */ - blockGitWrites?: boolean; + /** + * @generated from field: optional bool block_git_writes = 6; + */ + blockGitWrites?: boolean | undefined; - /** - * If true, excludes default tmp paths (/tmp/, /private/tmp/, /var/folders/) from the sandbox writable paths. Useful for testing readonly behavior. - * - * @generated from field: optional bool disable_tmp_write = 7; - */ - disableTmpWrite?: boolean; + /** + * If true, excludes default tmp paths (/tmp/, /private/tmp/, /var/folders/) from the sandbox writable paths. Useful for testing readonly behavior. + * + * @generated from field: optional bool disable_tmp_write = 7; + */ + disableTmpWrite?: boolean | undefined; }; /** * Describes the message agent.v1.SandboxPolicy. * Use `create(SandboxPolicySchema)` to create a new message. */ -export const SandboxPolicySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 348); +export const SandboxPolicySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 348); /** * @generated from message agent.v1.SelectedImage */ export type SelectedImage = Message<"agent.v1.SelectedImage"> & { - /** - * @generated from field: string uuid = 2; - */ - uuid: string; + /** + * @generated from field: string uuid = 2; + */ + uuid: string; - /** - * @generated from field: string path = 3; - */ - path: string; + /** + * @generated from field: string path = 3; + */ + path: string; - /** - * @generated from field: agent.v1.SelectedImage_Dimension dimension = 4; - */ - dimension?: SelectedImage_Dimension; + /** + * @generated from field: agent.v1.SelectedImage_Dimension dimension = 4; + */ + dimension?: SelectedImage_Dimension | undefined; - /** - * @generated from field: string mime_type = 7; - */ - mimeType: string; + /** + * @generated from field: string mime_type = 7; + */ + mimeType: string; - /** - * @generated from oneof agent.v1.SelectedImage.data_or_blob_id - */ - dataOrBlobId: - | { - /** - * @generated from field: bytes blob_id = 1; - */ - value: Uint8Array; - case: "blobId"; - } - | { - /** - * @generated from field: bytes data = 8; - */ - value: Uint8Array; - case: "data"; - } - | { - /** - * @generated from field: agent.v1.SelectedImage_BlobIdWithData blob_id_with_data = 9; - */ - value: SelectedImage_BlobIdWithData; - case: "blobIdWithData"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SelectedImage.data_or_blob_id + */ + dataOrBlobId: { + /** + * @generated from field: bytes blob_id = 1; + */ + value: Uint8Array; + case: "blobId"; + } | { + /** + * @generated from field: bytes data = 8; + */ + value: Uint8Array; + case: "data"; + } | { + /** + * @generated from field: agent.v1.SelectedImage_BlobIdWithData blob_id_with_data = 9; + */ + value: SelectedImage_BlobIdWithData; + case: "blobIdWithData"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SelectedImage. * Use `create(SelectedImageSchema)` to create a new message. */ -export const SelectedImageSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 349); +export const SelectedImageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 349); /** * Contains both blob_id and data together, for when the client has both and wants to populate the server-side cache without re-uploading @@ -10447,47 +10803,45 @@ export const SelectedImageSchema: GenMessage = /*@__PURE__*/ mess * @generated from message agent.v1.SelectedImage_BlobIdWithData */ export type SelectedImage_BlobIdWithData = Message<"agent.v1.SelectedImage_BlobIdWithData"> & { - /** - * @generated from field: bytes blob_id = 1; - */ - blobId: Uint8Array; + /** + * @generated from field: bytes blob_id = 1; + */ + blobId: Uint8Array; - /** - * @generated from field: bytes data = 2; - */ - data: Uint8Array; + /** + * @generated from field: bytes data = 2; + */ + data: Uint8Array; }; /** * Describes the message agent.v1.SelectedImage_BlobIdWithData. * Use `create(SelectedImage_BlobIdWithDataSchema)` to create a new message. */ -export const SelectedImage_BlobIdWithDataSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 350); +export const SelectedImage_BlobIdWithDataSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 350); /** * @generated from message agent.v1.SelectedImage_Dimension */ export type SelectedImage_Dimension = Message<"agent.v1.SelectedImage_Dimension"> & { - /** - * @generated from field: int32 width = 1; - */ - width: number; + /** + * @generated from field: int32 width = 1; + */ + width: number; - /** - * @generated from field: int32 height = 2; - */ - height: number; + /** + * @generated from field: int32 height = 2; + */ + height: number; }; /** * Describes the message agent.v1.SelectedImage_Dimension. * Use `create(SelectedImage_DimensionSchema)` to create a new message. */ -export const SelectedImage_DimensionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 351); +export const SelectedImage_DimensionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 351); /** * Extra context entry that can be stored inline or as a blob reference @@ -10495,32 +10849,30 @@ export const SelectedImage_DimensionSchema: GenMessage * @generated from message agent.v1.ExtraContextEntry */ export type ExtraContextEntry = Message<"agent.v1.ExtraContextEntry"> & { - /** - * @generated from oneof agent.v1.ExtraContextEntry.data_or_blob_id - */ - dataOrBlobId: - | { - /** - * @generated from field: string data = 1; - */ - value: string; - case: "data"; - } - | { - /** - * @generated from field: bytes blob_id = 2; - */ - value: Uint8Array; - case: "blobId"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExtraContextEntry.data_or_blob_id + */ + dataOrBlobId: { + /** + * @generated from field: string data = 1; + */ + value: string; + case: "data"; + } | { + /** + * @generated from field: bytes blob_id = 2; + */ + value: Uint8Array; + case: "blobId"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExtraContextEntry. * Use `create(ExtraContextEntrySchema)` to create a new message. */ -export const ExtraContextEntrySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 352); +export const ExtraContextEntrySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 352); /** * A selected file from the UI @@ -10528,29 +10880,30 @@ export const ExtraContextEntrySchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.SelectedFile */ export type SelectedFile = Message<"agent.v1.SelectedFile"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; - /** - * This is the full path - * - * @generated from field: string path = 2; - */ - path: string; + /** + * This is the full path + * + * @generated from field: string path = 2; + */ + path: string; - /** - * @generated from field: optional string relative_path = 3; - */ - relativePath?: string; + /** + * @generated from field: optional string relative_path = 3; + */ + relativePath?: string | undefined; }; /** * Describes the message agent.v1.SelectedFile. * Use `create(SelectedFileSchema)` to create a new message. */ -export const SelectedFileSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 353); +export const SelectedFileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 353); /** * A selected code selection from the UI @@ -10558,36 +10911,35 @@ export const SelectedFileSchema: GenMessage = /*@__PURE__*/ messag * @generated from message agent.v1.SelectedCodeSelection */ export type SelectedCodeSelection = Message<"agent.v1.SelectedCodeSelection"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; - /** - * This is the full path - * - * @generated from field: string path = 2; - */ - path: string; + /** + * This is the full path + * + * @generated from field: string path = 2; + */ + path: string; - /** - * @generated from field: optional string relative_path = 3; - */ - relativePath?: string; + /** + * @generated from field: optional string relative_path = 3; + */ + relativePath?: string | undefined; - /** - * @generated from field: agent.v1.Range range = 4; - */ - range?: Range; + /** + * @generated from field: agent.v1.Range range = 4; + */ + range?: Range | undefined; }; /** * Describes the message agent.v1.SelectedCodeSelection. * Use `create(SelectedCodeSelectionSchema)` to create a new message. */ -export const SelectedCodeSelectionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 354); +export const SelectedCodeSelectionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 354); /** * A selected terminal from the UI @@ -10595,27 +10947,28 @@ export const SelectedCodeSelectionSchema: GenMessage = * @generated from message agent.v1.SelectedTerminal */ export type SelectedTerminal = Message<"agent.v1.SelectedTerminal"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; - /** - * @generated from field: optional string title = 2; - */ - title?: string; + /** + * @generated from field: optional string title = 2; + */ + title?: string | undefined; - /** - * @generated from field: optional string path = 3; - */ - path?: string; + /** + * @generated from field: optional string path = 3; + */ + path?: string | undefined; }; /** * Describes the message agent.v1.SelectedTerminal. * Use `create(SelectedTerminalSchema)` to create a new message. */ -export const SelectedTerminalSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 355); +export const SelectedTerminalSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 355); /** * A selected terminal selection from the UI @@ -10623,34 +10976,33 @@ export const SelectedTerminalSchema: GenMessage = /*@__PURE__* * @generated from message agent.v1.SelectedTerminalSelection */ export type SelectedTerminalSelection = Message<"agent.v1.SelectedTerminalSelection"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; - /** - * @generated from field: optional string title = 2; - */ - title?: string; + /** + * @generated from field: optional string title = 2; + */ + title?: string | undefined; - /** - * @generated from field: optional string path = 3; - */ - path?: string; + /** + * @generated from field: optional string path = 3; + */ + path?: string | undefined; - /** - * @generated from field: agent.v1.Range range = 4; - */ - range?: Range; + /** + * @generated from field: agent.v1.Range range = 4; + */ + range?: Range | undefined; }; /** * Describes the message agent.v1.SelectedTerminalSelection. * Use `create(SelectedTerminalSelectionSchema)` to create a new message. */ -export const SelectedTerminalSelectionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 356); +export const SelectedTerminalSelectionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 356); /** * A selected folder from the UI @@ -10658,29 +11010,30 @@ export const SelectedTerminalSelectionSchema: GenMessage & { - /** - * This is the full path - * - * @generated from field: string path = 1; - */ - path: string; + /** + * This is the full path + * + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: optional string relative_path = 2; - */ - relativePath?: string; + /** + * @generated from field: optional string relative_path = 2; + */ + relativePath?: string | undefined; - /** - * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree = 3; - */ - directoryTree?: LsDirectoryTreeNode; + /** + * @generated from field: agent.v1.LsDirectoryTreeNode directory_tree = 3; + */ + directoryTree?: LsDirectoryTreeNode | undefined; }; /** * Describes the message agent.v1.SelectedFolder. * Use `create(SelectedFolderSchema)` to create a new message. */ -export const SelectedFolderSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 357); +export const SelectedFolderSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 357); /** * An external link manually attached by the user @@ -10688,39 +11041,40 @@ export const SelectedFolderSchema: GenMessage = /*@__PURE__*/ me * @generated from message agent.v1.SelectedExternalLink */ export type SelectedExternalLink = Message<"agent.v1.SelectedExternalLink"> & { - /** - * @generated from field: string url = 1; - */ - url: string; + /** + * @generated from field: string url = 1; + */ + url: string; - /** - * @generated from field: string uuid = 2; - */ - uuid: string; + /** + * @generated from field: string uuid = 2; + */ + uuid: string; - /** - * For local PDF files Base64-encoded PDF content - * - * @generated from field: optional string pdf_content = 3; - */ - pdfContent?: string; + /** + * For local PDF files Base64-encoded PDF content + * + * @generated from field: optional string pdf_content = 3; + */ + pdfContent?: string | undefined; - /** - * @generated from field: optional bool is_pdf = 4; - */ - isPdf?: boolean; + /** + * @generated from field: optional bool is_pdf = 4; + */ + isPdf?: boolean | undefined; - /** - * @generated from field: optional string filename = 5; - */ - filename?: string; + /** + * @generated from field: optional string filename = 5; + */ + filename?: string | undefined; }; /** * Describes the message agent.v1.SelectedExternalLink. * Use `create(SelectedExternalLinkSchema)` to create a new message. */ -export const SelectedExternalLinkSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 358); +export const SelectedExternalLinkSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 358); /** * A cursor rule manually attached by the user @@ -10728,17 +11082,18 @@ export const SelectedExternalLinkSchema: GenMessage = /*@_ * @generated from message agent.v1.SelectedCursorRule */ export type SelectedCursorRule = Message<"agent.v1.SelectedCursorRule"> & { - /** - * @generated from field: agent.v1.CursorRule rule = 1; - */ - rule?: CursorRule; + /** + * @generated from field: agent.v1.CursorRule rule = 1; + */ + rule?: CursorRule | undefined; }; /** * Describes the message agent.v1.SelectedCursorRule. * Use `create(SelectedCursorRuleSchema)` to create a new message. */ -export const SelectedCursorRuleSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 359); +export const SelectedCursorRuleSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 359); /** * Git diff (uncommitted changes in working tree) @@ -10746,19 +11101,20 @@ export const SelectedCursorRuleSchema: GenMessage = /*@__PUR * @generated from message agent.v1.SelectedGitDiff */ export type SelectedGitDiff = Message<"agent.v1.SelectedGitDiff"> & { - /** - * Raw git diff output - * - * @generated from field: string content = 1; - */ - content: string; + /** + * Raw git diff output + * + * @generated from field: string content = 1; + */ + content: string; }; /** * Describes the message agent.v1.SelectedGitDiff. * Use `create(SelectedGitDiffSchema)` to create a new message. */ -export const SelectedGitDiffSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 360); +export const SelectedGitDiffSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 360); /** * Git diff from branch to main @@ -10766,21 +11122,20 @@ export const SelectedGitDiffSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.SelectedGitDiffFromBranchToMain */ export type SelectedGitDiffFromBranchToMain = Message<"agent.v1.SelectedGitDiffFromBranchToMain"> & { - /** - * Raw git diff output - * - * @generated from field: string content = 1; - */ - content: string; + /** + * Raw git diff output + * + * @generated from field: string content = 1; + */ + content: string; }; /** * Describes the message agent.v1.SelectedGitDiffFromBranchToMain. * Use `create(SelectedGitDiffFromBranchToMainSchema)` to create a new message. */ -export const SelectedGitDiffFromBranchToMainSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 361); +export const SelectedGitDiffFromBranchToMainSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 361); /** * A git commit manually attached by the user @@ -10788,34 +11143,35 @@ export const SelectedGitDiffFromBranchToMainSchema: GenMessage & { - /** - * @generated from field: string sha = 1; - */ - sha: string; + /** + * @generated from field: string sha = 1; + */ + sha: string; - /** - * @generated from field: string message = 2; - */ - message: string; + /** + * @generated from field: string message = 2; + */ + message: string; - /** - * @generated from field: optional string description = 3; - */ - description?: string; + /** + * @generated from field: optional string description = 3; + */ + description?: string | undefined; - /** - * Raw git diff output for this commit - * - * @generated from field: string diff = 4; - */ - diff: string; + /** + * Raw git diff output for this commit + * + * @generated from field: string diff = 4; + */ + diff: string; }; /** * Describes the message agent.v1.SelectedGitCommit. * Use `create(SelectedGitCommitSchema)` to create a new message. */ -export const SelectedGitCommitSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 362); +export const SelectedGitCommitSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 362); /** * A pull request manually attached by the user via @mention Uses the same folder structure as ViewedPullRequest for consistency @@ -10823,55 +11179,56 @@ export const SelectedGitCommitSchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.SelectedPullRequest */ export type SelectedPullRequest = Message<"agent.v1.SelectedPullRequest"> & { - /** - * @generated from field: int32 number = 1; - */ - number: number; + /** + * @generated from field: int32 number = 1; + */ + number: number; - /** - * @generated from field: string url = 2; - */ - url: string; + /** + * @generated from field: string url = 2; + */ + url: string; - /** - * @generated from field: optional string title = 3; - */ - title?: string; + /** + * @generated from field: optional string title = 3; + */ + title?: string | undefined; - /** - * Path to the folder containing PR details (diffs, metadata, etc.) - * - * @generated from field: string folder_path = 4; - */ - folderPath: string; + /** + * Path to the folder containing PR details (diffs, metadata, etc.) + * + * @generated from field: string folder_path = 4; + */ + folderPath: string; - /** - * Summary JSON containing file list and diff sizes (contents of summary.json) - * - * @generated from field: optional string summary_json = 5; - */ - summaryJson?: string; + /** + * Summary JSON containing file list and diff sizes (contents of summary.json) + * + * @generated from field: optional string summary_json = 5; + */ + summaryJson?: string | undefined; - /** - * PR description/body - * - * @generated from field: optional string description = 6; - */ - description?: string; + /** + * PR description/body + * + * @generated from field: optional string description = 6; + */ + description?: string | undefined; - /** - * If set, other fields are empty and data should be fetched from the blob - * - * @generated from field: optional bytes blob_id = 7; - */ - blobId?: Uint8Array; + /** + * If set, other fields are empty and data should be fetched from the blob + * + * @generated from field: optional bytes blob_id = 7; + */ + blobId?: Uint8Array | undefined; }; /** * Describes the message agent.v1.SelectedPullRequest. * Use `create(SelectedPullRequestSchema)` to create a new message. */ -export const SelectedPullRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 363); +export const SelectedPullRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 363); /** * A selection from a pull request diff (for files that may not exist on disk) @@ -10879,56 +11236,55 @@ export const SelectedPullRequestSchema: GenMessage = /*@__P * @generated from message agent.v1.SelectedGitPRDiffSelection */ export type SelectedGitPRDiffSelection = Message<"agent.v1.SelectedGitPRDiffSelection"> & { - /** - * Full URL to the pull request - * - * @generated from field: string pr_url = 1; - */ - prUrl: string; + /** + * Full URL to the pull request + * + * @generated from field: string pr_url = 1; + */ + prUrl: string; - /** - * Path to the file within the PR - * - * @generated from field: string file_path = 2; - */ - filePath: string; + /** + * Path to the file within the PR + * + * @generated from field: string file_path = 2; + */ + filePath: string; - /** - * Start line in the diff - * - * @generated from field: int32 start_line = 3; - */ - startLine: number; + /** + * Start line in the diff + * + * @generated from field: int32 start_line = 3; + */ + startLine: number; - /** - * End line in the diff - * - * @generated from field: int32 end_line = 4; - */ - endLine: number; + /** + * End line in the diff + * + * @generated from field: int32 end_line = 4; + */ + endLine: number; - /** - * The diff content for this file (or selection) - * - * @generated from field: optional string diff_content = 5; - */ - diffContent?: string; + /** + * The diff content for this file (or selection) + * + * @generated from field: optional string diff_content = 5; + */ + diffContent?: string | undefined; - /** - * If set, other fields are empty and data should be fetched from the blob - * - * @generated from field: optional bytes blob_id = 6; - */ - blobId?: Uint8Array; + /** + * If set, other fields are empty and data should be fetched from the blob + * + * @generated from field: optional bytes blob_id = 6; + */ + blobId?: Uint8Array | undefined; }; /** * Describes the message agent.v1.SelectedGitPRDiffSelection. * Use `create(SelectedGitPRDiffSelectionSchema)` to create a new message. */ -export const SelectedGitPRDiffSelectionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 364); +export const SelectedGitPRDiffSelectionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 364); /** * A cursor command manually attached by the user @@ -10936,24 +11292,23 @@ export const SelectedGitPRDiffSelectionSchema: GenMessage & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: string content = 2; - */ - content: string; + /** + * @generated from field: string content = 2; + */ + content: string; }; /** * Describes the message agent.v1.SelectedCursorCommand. * Use `create(SelectedCursorCommandSchema)` to create a new message. */ -export const SelectedCursorCommandSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 365); +export const SelectedCursorCommandSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 365); /** * A documentation manually attached by the user @@ -10961,24 +11316,23 @@ export const SelectedCursorCommandSchema: GenMessage = * @generated from message agent.v1.SelectedDocumentation */ export type SelectedDocumentation = Message<"agent.v1.SelectedDocumentation"> & { - /** - * @generated from field: string doc_id = 1; - */ - docId: string; + /** + * @generated from field: string doc_id = 1; + */ + docId: string; - /** - * @generated from field: string name = 2; - */ - name: string; + /** + * @generated from field: string name = 2; + */ + name: string; }; /** * Describes the message agent.v1.SelectedDocumentation. * Use `create(SelectedDocumentationSchema)` to create a new message. */ -export const SelectedDocumentationSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 366); +export const SelectedDocumentationSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 366); /** * A past chat manually attached by the user (transcript file) @@ -10986,22 +11340,23 @@ export const SelectedDocumentationSchema: GenMessage = * @generated from message agent.v1.SelectedPastChat */ export type SelectedPastChat = Message<"agent.v1.SelectedPastChat"> & { - /** - * @generated from field: string agent_id = 1; - */ - agentId: string; + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; - /** - * @generated from field: string name = 2; - */ - name: string; + /** + * @generated from field: string name = 2; + */ + name: string; }; /** * Describes the message agent.v1.SelectedPastChat. * Use `create(SelectedPastChatSchema)` to create a new message. */ -export const SelectedPastChatSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 367); +export const SelectedPastChatSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 367); /** * A call frame from a stack trace @@ -11009,32 +11364,33 @@ export const SelectedPastChatSchema: GenMessage = /*@__PURE__* * @generated from message agent.v1.CallFrame */ export type CallFrame = Message<"agent.v1.CallFrame"> & { - /** - * @generated from field: optional string function_name = 1; - */ - functionName?: string; + /** + * @generated from field: optional string function_name = 1; + */ + functionName?: string | undefined; - /** - * @generated from field: optional string url = 2; - */ - url?: string; + /** + * @generated from field: optional string url = 2; + */ + url?: string | undefined; - /** - * @generated from field: optional int32 line_number = 3; - */ - lineNumber?: number; + /** + * @generated from field: optional int32 line_number = 3; + */ + lineNumber?: number | undefined; - /** - * @generated from field: optional int32 column_number = 4; - */ - columnNumber?: number; + /** + * @generated from field: optional int32 column_number = 4; + */ + columnNumber?: number | undefined; }; /** * Describes the message agent.v1.CallFrame. * Use `create(CallFrameSchema)` to create a new message. */ -export const CallFrameSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 368); +export const CallFrameSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 368); /** * A stack trace @@ -11042,22 +11398,23 @@ export const CallFrameSchema: GenMessage = /*@__PURE__*/ messageDesc( * @generated from message agent.v1.StackTrace */ export type StackTrace = Message<"agent.v1.StackTrace"> & { - /** - * @generated from field: repeated agent.v1.CallFrame call_frames = 1; - */ - callFrames: CallFrame[]; + /** + * @generated from field: repeated agent.v1.CallFrame call_frames = 1; + */ + callFrames: CallFrame[]; - /** - * @generated from field: optional string raw_stack_trace = 2; - */ - rawStackTrace?: string; + /** + * @generated from field: optional string raw_stack_trace = 2; + */ + rawStackTrace?: string | undefined; }; /** * Describes the message agent.v1.StackTrace. * Use `create(StackTraceSchema)` to create a new message. */ -export const StackTraceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 369); +export const StackTraceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 369); /** * A console log entry from the runtime @@ -11065,49 +11422,50 @@ export const StackTraceSchema: GenMessage = /*@__PURE__*/ messageDes * @generated from message agent.v1.SelectedConsoleLog */ export type SelectedConsoleLog = Message<"agent.v1.SelectedConsoleLog"> & { - /** - * @generated from field: string message = 1; - */ - message: string; + /** + * @generated from field: string message = 1; + */ + message: string; - /** - * * Unix timestamp in milliseconds when this log entry was created - * - * @generated from field: double timestamp = 2; - */ - timestamp: number; + /** + * * Unix timestamp in milliseconds when this log entry was created + * + * @generated from field: double timestamp = 2; + */ + timestamp: number; - /** - * @generated from field: string level = 3; - */ - level: string; + /** + * @generated from field: string level = 3; + */ + level: string; - /** - * @generated from field: string client_name = 4; - */ - clientName: string; + /** + * @generated from field: string client_name = 4; + */ + clientName: string; - /** - * @generated from field: string session_id = 5; - */ - sessionId: string; + /** + * @generated from field: string session_id = 5; + */ + sessionId: string; - /** - * @generated from field: optional agent.v1.StackTrace stack_trace = 6; - */ - stackTrace?: StackTrace; + /** + * @generated from field: optional agent.v1.StackTrace stack_trace = 6; + */ + stackTrace?: StackTrace | undefined; - /** - * @generated from field: optional string object_data_json = 7; - */ - objectDataJson?: string; + /** + * @generated from field: optional string object_data_json = 7; + */ + objectDataJson?: string | undefined; }; /** * Describes the message agent.v1.SelectedConsoleLog. * Use `create(SelectedConsoleLogSchema)` to create a new message. */ -export const SelectedConsoleLogSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 370); +export const SelectedConsoleLogSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 370); /** * A UI element picked by the user from the runtime @@ -11115,42 +11473,43 @@ export const SelectedConsoleLogSchema: GenMessage = /*@__PUR * @generated from message agent.v1.SelectedUIElement */ export type SelectedUIElement = Message<"agent.v1.SelectedUIElement"> & { - /** - * @generated from field: string element = 1; - */ - element: string; + /** + * @generated from field: string element = 1; + */ + element: string; - /** - * @generated from field: string xpath = 2; - */ - xpath: string; + /** + * @generated from field: string xpath = 2; + */ + xpath: string; - /** - * @generated from field: string text_content = 3; - */ - textContent: string; + /** + * @generated from field: string text_content = 3; + */ + textContent: string; - /** - * @generated from field: string extra = 4; - */ - extra: string; + /** + * @generated from field: string extra = 4; + */ + extra: string; - /** - * @generated from field: optional string component = 5; - */ - component?: string; + /** + * @generated from field: optional string component = 5; + */ + component?: string | undefined; - /** - * @generated from field: optional string component_props_json = 6; - */ - componentPropsJson?: string; + /** + * @generated from field: optional string component_props_json = 6; + */ + componentPropsJson?: string | undefined; }; /** * Describes the message agent.v1.SelectedUIElement. * Use `create(SelectedUIElementSchema)` to create a new message. */ -export const SelectedUIElementSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 371); +export const SelectedUIElementSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 371); /** * A subagent selected by the user from the slash menu @@ -11158,17 +11517,18 @@ export const SelectedUIElementSchema: GenMessage = /*@__PURE_ * @generated from message agent.v1.SelectedSubagent */ export type SelectedSubagent = Message<"agent.v1.SelectedSubagent"> & { - /** - * @generated from field: string name = 1; - */ - name: string; + /** + * @generated from field: string name = 1; + */ + name: string; }; /** * Describes the message agent.v1.SelectedSubagent. * Use `create(SelectedSubagentSchema)` to create a new message. */ -export const SelectedSubagentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 372); +export const SelectedSubagentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 372); /** * Container for selected context from the UI @@ -11176,126 +11536,127 @@ export const SelectedSubagentSchema: GenMessage = /*@__PURE__* * @generated from message agent.v1.SelectedContext */ export type SelectedContext = Message<"agent.v1.SelectedContext"> & { - /** - * @generated from field: repeated agent.v1.SelectedImage selected_images = 1; - */ - selectedImages: SelectedImage[]; + /** + * @generated from field: repeated agent.v1.SelectedImage selected_images = 1; + */ + selectedImages: SelectedImage[]; - /** - * @generated from field: optional agent.v1.InvocationContext invocation_context = 2; - */ - invocationContext?: InvocationContext; + /** + * @generated from field: optional agent.v1.InvocationContext invocation_context = 2; + */ + invocationContext?: InvocationContext | undefined; - /** - * Temporary hack for IDE-based context (@filename, @Diff, etc.) in background agents only. TODO: remove once proper IDE context format is implemented. - * - * @generated from field: repeated string extra_context = 3; - */ - extraContext: string[]; + /** + * Temporary hack for IDE-based context (@filename, @Diff, etc.) in background agents only. TODO: remove once proper IDE context format is implemented. + * + * @generated from field: repeated string extra_context = 3; + */ + extraContext: string[]; - /** - * @generated from field: repeated agent.v1.ExtraContextEntry extra_context_entries = 16; - */ - extraContextEntries: ExtraContextEntry[]; + /** + * @generated from field: repeated agent.v1.ExtraContextEntry extra_context_entries = 16; + */ + extraContextEntries: ExtraContextEntry[]; - /** - * New context types - * - * @generated from field: repeated agent.v1.SelectedFile files = 4; - */ - files: SelectedFile[]; + /** + * New context types + * + * @generated from field: repeated agent.v1.SelectedFile files = 4; + */ + files: SelectedFile[]; - /** - * @generated from field: repeated agent.v1.SelectedCodeSelection code_selections = 5; - */ - codeSelections: SelectedCodeSelection[]; + /** + * @generated from field: repeated agent.v1.SelectedCodeSelection code_selections = 5; + */ + codeSelections: SelectedCodeSelection[]; - /** - * @generated from field: repeated agent.v1.SelectedTerminal terminals = 6; - */ - terminals: SelectedTerminal[]; + /** + * @generated from field: repeated agent.v1.SelectedTerminal terminals = 6; + */ + terminals: SelectedTerminal[]; - /** - * @generated from field: repeated agent.v1.SelectedTerminalSelection terminal_selections = 7; - */ - terminalSelections: SelectedTerminalSelection[]; + /** + * @generated from field: repeated agent.v1.SelectedTerminalSelection terminal_selections = 7; + */ + terminalSelections: SelectedTerminalSelection[]; - /** - * @generated from field: repeated agent.v1.SelectedFolder folders = 8; - */ - folders: SelectedFolder[]; + /** + * @generated from field: repeated agent.v1.SelectedFolder folders = 8; + */ + folders: SelectedFolder[]; - /** - * @generated from field: repeated agent.v1.SelectedExternalLink external_links = 9; - */ - externalLinks: SelectedExternalLink[]; + /** + * @generated from field: repeated agent.v1.SelectedExternalLink external_links = 9; + */ + externalLinks: SelectedExternalLink[]; - /** - * @generated from field: repeated agent.v1.SelectedCursorRule cursor_rules = 10; - */ - cursorRules: SelectedCursorRule[]; + /** + * @generated from field: repeated agent.v1.SelectedCursorRule cursor_rules = 10; + */ + cursorRules: SelectedCursorRule[]; - /** - * @generated from field: optional agent.v1.SelectedGitDiff git_diff = 18; - */ - gitDiff?: SelectedGitDiff; + /** + * @generated from field: optional agent.v1.SelectedGitDiff git_diff = 18; + */ + gitDiff?: SelectedGitDiff | undefined; - /** - * @generated from field: optional agent.v1.SelectedGitDiffFromBranchToMain git_diff_from_branch_to_main = 11; - */ - gitDiffFromBranchToMain?: SelectedGitDiffFromBranchToMain; + /** + * @generated from field: optional agent.v1.SelectedGitDiffFromBranchToMain git_diff_from_branch_to_main = 11; + */ + gitDiffFromBranchToMain?: SelectedGitDiffFromBranchToMain | undefined; - /** - * @generated from field: repeated agent.v1.SelectedCursorCommand cursor_commands = 12; - */ - cursorCommands: SelectedCursorCommand[]; + /** + * @generated from field: repeated agent.v1.SelectedCursorCommand cursor_commands = 12; + */ + cursorCommands: SelectedCursorCommand[]; - /** - * @generated from field: repeated agent.v1.SelectedDocumentation documentations = 13; - */ - documentations: SelectedDocumentation[]; + /** + * @generated from field: repeated agent.v1.SelectedDocumentation documentations = 13; + */ + documentations: SelectedDocumentation[]; - /** - * @generated from field: repeated agent.v1.SelectedUIElement ui_elements = 14; - */ - uiElements: SelectedUIElement[]; + /** + * @generated from field: repeated agent.v1.SelectedUIElement ui_elements = 14; + */ + uiElements: SelectedUIElement[]; - /** - * @generated from field: repeated agent.v1.SelectedConsoleLog console_logs = 15; - */ - consoleLogs: SelectedConsoleLog[]; + /** + * @generated from field: repeated agent.v1.SelectedConsoleLog console_logs = 15; + */ + consoleLogs: SelectedConsoleLog[]; - /** - * @generated from field: repeated agent.v1.SelectedGitCommit git_commits = 17; - */ - gitCommits: SelectedGitCommit[]; + /** + * @generated from field: repeated agent.v1.SelectedGitCommit git_commits = 17; + */ + gitCommits: SelectedGitCommit[]; - /** - * @generated from field: repeated agent.v1.SelectedPastChat past_chats = 19; - */ - pastChats: SelectedPastChat[]; + /** + * @generated from field: repeated agent.v1.SelectedPastChat past_chats = 19; + */ + pastChats: SelectedPastChat[]; - /** - * @generated from field: repeated agent.v1.SelectedGitPRDiffSelection git_pr_diff_selections = 20; - */ - gitPrDiffSelections: SelectedGitPRDiffSelection[]; + /** + * @generated from field: repeated agent.v1.SelectedGitPRDiffSelection git_pr_diff_selections = 20; + */ + gitPrDiffSelections: SelectedGitPRDiffSelection[]; - /** - * @generated from field: repeated agent.v1.SelectedPullRequest selected_pull_requests = 21; - */ - selectedPullRequests: SelectedPullRequest[]; + /** + * @generated from field: repeated agent.v1.SelectedPullRequest selected_pull_requests = 21; + */ + selectedPullRequests: SelectedPullRequest[]; - /** - * @generated from field: repeated agent.v1.SelectedSubagent selected_subagents = 22; - */ - selectedSubagents: SelectedSubagent[]; + /** + * @generated from field: repeated agent.v1.SelectedSubagent selected_subagents = 22; + */ + selectedSubagents: SelectedSubagent[]; }; /** * Describes the message agent.v1.SelectedContext. * Use `create(SelectedContextSchema)` to create a new message. */ -export const SelectedContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 373); +export const SelectedContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 373); /** * InvocationContext represents the context from the external app/integration that triggered this agent request. @@ -11303,287 +11664,274 @@ export const SelectedContextSchema: GenMessage = /*@__PURE__*/ * @generated from message agent.v1.InvocationContext */ export type InvocationContext = Message<"agent.v1.InvocationContext"> & { - /** - * @generated from oneof agent.v1.InvocationContext.data - */ - data: - | { - /** - * @generated from field: agent.v1.InvocationContext_SlackThread slack_thread = 1; - */ - value: InvocationContext_SlackThread; - case: "slackThread"; - } - | { - /** - * @generated from field: agent.v1.InvocationContext_GithubPR github_pr = 2; - */ - value: InvocationContext_GithubPR; - case: "githubPr"; - } - | { - /** - * @generated from field: agent.v1.InvocationContext_IdeState ide_state = 3; - */ - value: InvocationContext_IdeState; - case: "ideState"; - } - | { - /** - * @generated from field: bytes blob_id = 10; - */ - value: Uint8Array; - case: "blobId"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.InvocationContext.data + */ + data: { + /** + * @generated from field: agent.v1.InvocationContext_SlackThread slack_thread = 1; + */ + value: InvocationContext_SlackThread; + case: "slackThread"; + } | { + /** + * @generated from field: agent.v1.InvocationContext_GithubPR github_pr = 2; + */ + value: InvocationContext_GithubPR; + case: "githubPr"; + } | { + /** + * @generated from field: agent.v1.InvocationContext_IdeState ide_state = 3; + */ + value: InvocationContext_IdeState; + case: "ideState"; + } | { + /** + * @generated from field: bytes blob_id = 10; + */ + value: Uint8Array; + case: "blobId"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.InvocationContext. * Use `create(InvocationContextSchema)` to create a new message. */ -export const InvocationContextSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 374); +export const InvocationContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 374); /** * @generated from message agent.v1.InvocationContext_SlackThread */ export type InvocationContext_SlackThread = Message<"agent.v1.InvocationContext_SlackThread"> & { - /** - * @generated from field: string thread = 1; - */ - thread: string; + /** + * @generated from field: string thread = 1; + */ + thread: string; - /** - * @generated from field: optional string channel_name = 2; - */ - channelName?: string; + /** + * @generated from field: optional string channel_name = 2; + */ + channelName?: string | undefined; - /** - * @generated from field: optional string channel_purpose = 3; - */ - channelPurpose?: string; + /** + * @generated from field: optional string channel_purpose = 3; + */ + channelPurpose?: string | undefined; - /** - * @generated from field: optional string channel_topic = 4; - */ - channelTopic?: string; + /** + * @generated from field: optional string channel_topic = 4; + */ + channelTopic?: string | undefined; }; /** * Describes the message agent.v1.InvocationContext_SlackThread. * Use `create(InvocationContext_SlackThreadSchema)` to create a new message. */ -export const InvocationContext_SlackThreadSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 375); +export const InvocationContext_SlackThreadSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 375); /** * @generated from message agent.v1.InvocationContext_GithubPR */ export type InvocationContext_GithubPR = Message<"agent.v1.InvocationContext_GithubPR"> & { - /** - * @generated from field: string title = 1; - */ - title: string; + /** + * @generated from field: string title = 1; + */ + title: string; - /** - * @generated from field: string description = 2; - */ - description: string; + /** + * @generated from field: string description = 2; + */ + description: string; - /** - * @generated from field: string comments = 3; - */ - comments: string; + /** + * @generated from field: string comments = 3; + */ + comments: string; - /** - * @generated from field: optional string ci_failures = 4; - */ - ciFailures?: string; + /** + * @generated from field: optional string ci_failures = 4; + */ + ciFailures?: string | undefined; }; /** * Describes the message agent.v1.InvocationContext_GithubPR. * Use `create(InvocationContext_GithubPRSchema)` to create a new message. */ -export const InvocationContext_GithubPRSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 376); +export const InvocationContext_GithubPRSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 376); /** * @generated from message agent.v1.InvocationContext_IdeState */ export type InvocationContext_IdeState = Message<"agent.v1.InvocationContext_IdeState"> & { - /** - * @generated from field: repeated agent.v1.InvocationContext_IdeState_File visible_files = 1; - */ - visibleFiles: InvocationContext_IdeState_File[]; + /** + * @generated from field: repeated agent.v1.InvocationContext_IdeState_File visible_files = 1; + */ + visibleFiles: InvocationContext_IdeState_File[]; - /** - * @generated from field: repeated agent.v1.InvocationContext_IdeState_File recently_viewed_files = 2; - */ - recentlyViewedFiles: InvocationContext_IdeState_File[]; + /** + * @generated from field: repeated agent.v1.InvocationContext_IdeState_File recently_viewed_files = 2; + */ + recentlyViewedFiles: InvocationContext_IdeState_File[]; - /** - * PRs currently being viewed in the review editor (if any) - * - * @generated from field: repeated agent.v1.InvocationContext_IdeState_ViewedPullRequest currently_viewed_prs = 3; - */ - currentlyViewedPrs: InvocationContext_IdeState_ViewedPullRequest[]; + /** + * PRs currently being viewed in the review editor (if any) + * + * @generated from field: repeated agent.v1.InvocationContext_IdeState_ViewedPullRequest currently_viewed_prs = 3; + */ + currentlyViewedPrs: InvocationContext_IdeState_ViewedPullRequest[]; }; /** * Describes the message agent.v1.InvocationContext_IdeState. * Use `create(InvocationContext_IdeStateSchema)` to create a new message. */ -export const InvocationContext_IdeStateSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 377); +export const InvocationContext_IdeStateSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 377); /** * @generated from message agent.v1.InvocationContext_IdeState_File */ export type InvocationContext_IdeState_File = Message<"agent.v1.InvocationContext_IdeState_File"> & { - /** - * This is the full path - * - * @generated from field: string path = 1; - */ - path: string; + /** + * This is the full path + * + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: optional string relative_path = 2; - */ - relativePath?: string; + /** + * @generated from field: optional string relative_path = 2; + */ + relativePath?: string | undefined; - /** - * Present if file is currently focused - * - * @generated from field: optional agent.v1.InvocationContext_IdeState_File_CursorPosition cursor_position = 3; - */ - cursorPosition?: InvocationContext_IdeState_File_CursorPosition; + /** + * Present if file is currently focused + * + * @generated from field: optional agent.v1.InvocationContext_IdeState_File_CursorPosition cursor_position = 3; + */ + cursorPosition?: InvocationContext_IdeState_File_CursorPosition | undefined; - /** - * @generated from field: int32 total_lines = 4; - */ - totalLines: number; + /** + * @generated from field: int32 total_lines = 4; + */ + totalLines: number; - /** - * Present for terminal files - * - * @generated from field: optional string active_command = 5; - */ - activeCommand?: string; + /** + * Present for terminal files + * + * @generated from field: optional string active_command = 5; + */ + activeCommand?: string | undefined; }; /** * Describes the message agent.v1.InvocationContext_IdeState_File. * Use `create(InvocationContext_IdeState_FileSchema)` to create a new message. */ -export const InvocationContext_IdeState_FileSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 378); +export const InvocationContext_IdeState_FileSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 378); /** * @generated from message agent.v1.InvocationContext_IdeState_File_CursorPosition */ -export type InvocationContext_IdeState_File_CursorPosition = - Message<"agent.v1.InvocationContext_IdeState_File_CursorPosition"> & { - /** - * @generated from field: int32 line = 1; - */ - line: number; +export type InvocationContext_IdeState_File_CursorPosition = Message<"agent.v1.InvocationContext_IdeState_File_CursorPosition"> & { + /** + * @generated from field: int32 line = 1; + */ + line: number; - /** - * @generated from field: string text = 2; - */ - text: string; - }; + /** + * @generated from field: string text = 2; + */ + text: string; +}; /** * Describes the message agent.v1.InvocationContext_IdeState_File_CursorPosition. * Use `create(InvocationContext_IdeState_File_CursorPositionSchema)` to create a new message. */ -export const InvocationContext_IdeState_File_CursorPositionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 379); +export const InvocationContext_IdeState_File_CursorPositionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 379); /** * Information about a PR currently being viewed in a review editor * * @generated from message agent.v1.InvocationContext_IdeState_ViewedPullRequest */ -export type InvocationContext_IdeState_ViewedPullRequest = - Message<"agent.v1.InvocationContext_IdeState_ViewedPullRequest"> & { - /** - * @generated from field: int32 number = 1; - */ - number: number; +export type InvocationContext_IdeState_ViewedPullRequest = Message<"agent.v1.InvocationContext_IdeState_ViewedPullRequest"> & { + /** + * @generated from field: int32 number = 1; + */ + number: number; - /** - * @generated from field: string url = 2; - */ - url: string; + /** + * @generated from field: string url = 2; + */ + url: string; - /** - * @generated from field: optional string title = 3; - */ - title?: string; + /** + * @generated from field: optional string title = 3; + */ + title?: string | undefined; - /** - * Path to the folder containing PR details (diffs, metadata, etc.) - * - * @generated from field: optional string folder_path = 4; - */ - folderPath?: string; + /** + * Path to the folder containing PR details (diffs, metadata, etc.) + * + * @generated from field: optional string folder_path = 4; + */ + folderPath?: string | undefined; - /** - * Summary JSON containing file list and diff sizes (contents of summary.json) - * - * @generated from field: optional string summary_json = 5; - */ - summaryJson?: string; + /** + * Summary JSON containing file list and diff sizes (contents of summary.json) + * + * @generated from field: optional string summary_json = 5; + */ + summaryJson?: string | undefined; - /** - * PR description/body - * - * @generated from field: optional string description = 6; - */ - description?: string; - }; + /** + * PR description/body + * + * @generated from field: optional string description = 6; + */ + description?: string | undefined; +}; /** * Describes the message agent.v1.InvocationContext_IdeState_ViewedPullRequest. * Use `create(InvocationContext_IdeState_ViewedPullRequestSchema)` to create a new message. */ -export const InvocationContext_IdeState_ViewedPullRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 380); +export const InvocationContext_IdeState_ViewedPullRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 380); /** * @generated from message agent.v1.SetupVmEnvironmentArgs */ export type SetupVmEnvironmentArgs = Message<"agent.v1.SetupVmEnvironmentArgs"> & { - /** - * Command to install runtime dependencies (e.g., "npm install") - * - * @generated from field: string install_command = 2; - */ - installCommand: string; + /** + * Command to install runtime dependencies (e.g., "npm install") + * + * @generated from field: string install_command = 2; + */ + installCommand: string; - /** - * @generated from field: string start_command = 3; - */ - startCommand: string; + /** + * @generated from field: string start_command = 3; + */ + startCommand: string; }; /** * Describes the message agent.v1.SetupVmEnvironmentArgs. * Use `create(SetupVmEnvironmentArgsSchema)` to create a new message. */ -export const SetupVmEnvironmentArgsSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 381); +export const SetupVmEnvironmentArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 381); /** * Result of VM environment setup operations @@ -11591,42 +11939,39 @@ export const SetupVmEnvironmentArgsSchema: GenMessage = * @generated from message agent.v1.SetupVmEnvironmentResult */ export type SetupVmEnvironmentResult = Message<"agent.v1.SetupVmEnvironmentResult"> & { - /** - * @generated from oneof agent.v1.SetupVmEnvironmentResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.SetupVmEnvironmentSuccess success = 1; - */ - value: SetupVmEnvironmentSuccess; - case: "success"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SetupVmEnvironmentResult.result + */ + result: { + /** + * @generated from field: agent.v1.SetupVmEnvironmentSuccess success = 1; + */ + value: SetupVmEnvironmentSuccess; + case: "success"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SetupVmEnvironmentResult. * Use `create(SetupVmEnvironmentResultSchema)` to create a new message. */ -export const SetupVmEnvironmentResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 382); +export const SetupVmEnvironmentResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 382); /** * Successful VM environment setup result * * @generated from message agent.v1.SetupVmEnvironmentSuccess */ -export type SetupVmEnvironmentSuccess = Message<"agent.v1.SetupVmEnvironmentSuccess"> & {}; +export type SetupVmEnvironmentSuccess = Message<"agent.v1.SetupVmEnvironmentSuccess"> & { +}; /** * Describes the message agent.v1.SetupVmEnvironmentSuccess. * Use `create(SetupVmEnvironmentSuccessSchema)` to create a new message. */ -export const SetupVmEnvironmentSuccessSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 383); +export const SetupVmEnvironmentSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 383); /** * Tool call structure for SetupVmEnvironment @@ -11634,982 +11979,1074 @@ export const SetupVmEnvironmentSuccessSchema: GenMessage & { - /** - * Arguments for the tool call - * - * @generated from field: agent.v1.SetupVmEnvironmentArgs args = 1; - */ - args?: SetupVmEnvironmentArgs; + /** + * Arguments for the tool call + * + * @generated from field: agent.v1.SetupVmEnvironmentArgs args = 1; + */ + args?: SetupVmEnvironmentArgs | undefined; - /** - * Result of the tool call (populated after execution) - * - * @generated from field: agent.v1.SetupVmEnvironmentResult result = 2; - */ - result?: SetupVmEnvironmentResult; + /** + * Result of the tool call (populated after execution) + * + * @generated from field: agent.v1.SetupVmEnvironmentResult result = 2; + */ + result?: SetupVmEnvironmentResult | undefined; }; /** * Describes the message agent.v1.SetupVmEnvironmentToolCall. * Use `create(SetupVmEnvironmentToolCallSchema)` to create a new message. */ -export const SetupVmEnvironmentToolCallSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 384); +export const SetupVmEnvironmentToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 384); /** * @generated from message agent.v1.ShellCommandParsingResult */ export type ShellCommandParsingResult = Message<"agent.v1.ShellCommandParsingResult"> & { - /** - * @generated from field: bool parsing_failed = 1; - */ - parsingFailed: boolean; + /** + * @generated from field: bool parsing_failed = 1; + */ + parsingFailed: boolean; - /** - * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommand executable_commands = 2; - */ - executableCommands: ShellCommandParsingResult_ExecutableCommand[]; + /** + * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommand executable_commands = 2; + */ + executableCommands: ShellCommandParsingResult_ExecutableCommand[]; - /** - * @generated from field: bool has_redirects = 3; - */ - hasRedirects: boolean; + /** + * @generated from field: bool has_redirects = 3; + */ + hasRedirects: boolean; - /** - * @generated from field: bool has_command_substitution = 4; - */ - hasCommandSubstitution: boolean; + /** + * @generated from field: bool has_command_substitution = 4; + */ + hasCommandSubstitution: boolean; + + /** + * @generated from field: optional bool all_redirects_are_dev_null = 5; + */ + allRedirectsAreDevNull?: boolean | undefined; + + /** + * @generated from field: repeated agent.v1.ShellCommandParsingResult_Redirect redirects = 6; + */ + redirects: ShellCommandParsingResult_Redirect[]; }; /** * Describes the message agent.v1.ShellCommandParsingResult. * Use `create(ShellCommandParsingResultSchema)` to create a new message. */ -export const ShellCommandParsingResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 385); +export const ShellCommandParsingResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 385); /** * @generated from message agent.v1.ShellCommandParsingResult_ExecutableCommandArg */ -export type ShellCommandParsingResult_ExecutableCommandArg = - Message<"agent.v1.ShellCommandParsingResult_ExecutableCommandArg"> & { - /** - * @generated from field: string type = 1; - */ - type: string; +export type ShellCommandParsingResult_ExecutableCommandArg = Message<"agent.v1.ShellCommandParsingResult_ExecutableCommandArg"> & { + /** + * @generated from field: string type = 1; + */ + type: string; - /** - * @generated from field: string value = 2; - */ - value: string; - }; + /** + * @generated from field: string value = 2; + */ + value: string; +}; /** * Describes the message agent.v1.ShellCommandParsingResult_ExecutableCommandArg. * Use `create(ShellCommandParsingResult_ExecutableCommandArgSchema)` to create a new message. */ -export const ShellCommandParsingResult_ExecutableCommandArgSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 386); +export const ShellCommandParsingResult_ExecutableCommandArgSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 386); /** * @generated from message agent.v1.ShellCommandParsingResult_ExecutableCommand */ -export type ShellCommandParsingResult_ExecutableCommand = - Message<"agent.v1.ShellCommandParsingResult_ExecutableCommand"> & { - /** - * @generated from field: string name = 1; - */ - name: string; +export type ShellCommandParsingResult_ExecutableCommand = Message<"agent.v1.ShellCommandParsingResult_ExecutableCommand"> & { + /** + * @generated from field: string name = 1; + */ + name: string; - /** - * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommandArg args = 2; - */ - args: ShellCommandParsingResult_ExecutableCommandArg[]; + /** + * @generated from field: repeated agent.v1.ShellCommandParsingResult_ExecutableCommandArg args = 2; + */ + args: ShellCommandParsingResult_ExecutableCommandArg[]; - /** - * @generated from field: string full_text = 3; - */ - fullText: string; - }; + /** + * @generated from field: string full_text = 3; + */ + fullText: string; +}; /** * Describes the message agent.v1.ShellCommandParsingResult_ExecutableCommand. * Use `create(ShellCommandParsingResult_ExecutableCommandSchema)` to create a new message. */ -export const ShellCommandParsingResult_ExecutableCommandSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 387); +export const ShellCommandParsingResult_ExecutableCommandSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 387); /** * @generated from message agent.v1.ShellArgs */ export type ShellArgs = Message<"agent.v1.ShellArgs"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: int32 timeout = 3; - */ - timeout: number; + /** + * @generated from field: int32 timeout = 3; + */ + timeout: number; - /** - * @generated from field: string tool_call_id = 4; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 4; + */ + toolCallId: string; - /** - * @generated from field: repeated string simple_commands = 5; - */ - simpleCommands: string[]; + /** + * @generated from field: repeated string simple_commands = 5; + */ + simpleCommands: string[]; - /** - * @generated from field: bool has_input_redirect = 6; - */ - hasInputRedirect: boolean; + /** + * @generated from field: bool has_input_redirect = 6; + */ + hasInputRedirect: boolean; - /** - * @generated from field: bool has_output_redirect = 7; - */ - hasOutputRedirect: boolean; + /** + * @generated from field: bool has_output_redirect = 7; + */ + hasOutputRedirect: boolean; - /** - * Deprecated: use parsing_result instead @deprecated simpleCommands = []; Deprecated: use parsing_result instead @deprecated hasInputRedirect = false; Deprecated: use parsing_result instead @deprecated hasOutputRedirect = false; - * - * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 8; - */ - parsingResult?: ShellCommandParsingResult; + /** + * Deprecated: use parsing_result instead @deprecated simpleCommands = []; Deprecated: use parsing_result instead @deprecated hasInputRedirect = false; Deprecated: use parsing_result instead @deprecated hasOutputRedirect = false; + * + * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 8; + */ + parsingResult?: ShellCommandParsingResult | undefined; - /** - * @generated from field: optional agent.v1.SandboxPolicy requested_sandbox_policy = 9; - */ - requestedSandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy requested_sandbox_policy = 9; + */ + requestedSandboxPolicy?: SandboxPolicy | undefined; - /** - * If output size exceeds this threshold (in bytes), write to file instead of inline. If unset or 0, always use inline output. - * - * @generated from field: optional uint64 file_output_threshold_bytes = 10; - */ - fileOutputThresholdBytes?: bigint; + /** + * If output size exceeds this threshold (in bytes), write to file instead of inline. If unset or 0, always use inline output. + * + * @generated from field: optional uint64 file_output_threshold_bytes = 10; + */ + fileOutputThresholdBytes?: bigint | undefined; - /** - * @generated from field: bool is_background = 11; - */ - isBackground: boolean; + /** + * @generated from field: bool is_background = 11; + */ + isBackground: boolean; - /** - * @generated from field: bool skip_approval = 12; - */ - skipApproval: boolean; + /** + * @generated from field: bool skip_approval = 12; + */ + skipApproval: boolean; - /** - * @generated from field: int32 timeout_behavior = 13; - */ - timeoutBehavior: number; + /** + * @generated from field: int32 timeout_behavior = 13; + */ + timeoutBehavior: number; - /** - * Hard timeout: kill the command after this many ms, even if running in background - * - * @generated from field: optional int32 hard_timeout = 14; - */ - hardTimeout?: number; + /** + * Hard timeout: kill the command after this many ms, even if running in background + * + * @generated from field: optional int32 hard_timeout = 14; + */ + hardTimeout?: number | undefined; + + /** + * @generated from field: optional string description = 15; + */ + description?: string | undefined; + + /** + * @generated from field: optional agent.v1.CommandClassifierResult classifier_result = 16; + */ + classifierResult?: CommandClassifierResult | undefined; + + /** + * @generated from field: bool close_stdin = 17; + */ + closeStdin: boolean; + + /** + * @generated from field: optional agent.v1.ShellOutputNotificationConfig output_notification = 18; + */ + outputNotification?: ShellOutputNotificationConfig | undefined; + + /** + * @generated from field: optional agent.v1.SmartModeApproval smart_mode_approval = 19; + */ + smartModeApproval?: SmartModeApproval | undefined; + + /** + * @generated from field: optional agent.v1.ShellHookApprovalRequirement hook_approval_requirement = 20; + */ + hookApprovalRequirement?: ShellHookApprovalRequirement | undefined; + + /** + * @generated from field: optional string conversation_id = 21; + */ + conversationId?: string | undefined; }; /** * Describes the message agent.v1.ShellArgs. * Use `create(ShellArgsSchema)` to create a new message. */ -export const ShellArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 388); +export const ShellArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 388); /** * @generated from message agent.v1.ShellResult */ export type ShellResult = Message<"agent.v1.ShellResult"> & { - /** - * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 101; - */ - sandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 101; + */ + sandboxPolicy?: SandboxPolicy | undefined; - /** - * Rendering is affected by this flag, pass forward from args. - * - * @generated from field: optional bool is_background = 102; - */ - isBackground?: boolean; + /** + * Rendering is affected by this flag, pass forward from args. + * + * @generated from field: optional bool is_background = 102; + */ + isBackground?: boolean | undefined; - /** - * Rendering is affected by this flag, pass forward from args. - * - * @generated from field: optional string terminals_folder = 103; - */ - terminalsFolder?: string; + /** + * Rendering is affected by this flag, pass forward from args. + * + * @generated from field: optional string terminals_folder = 103; + */ + terminalsFolder?: string | undefined; - /** - * Process ID, used for backgrounded shells. - * - * @generated from field: optional uint32 pid = 104; - */ - pid?: number; + /** + * Process ID, used for backgrounded shells. + * + * @generated from field: optional uint32 pid = 104; + */ + pid?: number | undefined; - /** - * @generated from oneof agent.v1.ShellResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ShellSuccess success = 1; - */ - value: ShellSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ShellFailure failure = 2; - */ - value: ShellFailure; - case: "failure"; - } - | { - /** - * @generated from field: agent.v1.ShellTimeout timeout = 3; - */ - value: ShellTimeout; - case: "timeout"; - } - | { - /** - * @generated from field: agent.v1.ShellRejected rejected = 4; - */ - value: ShellRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.ShellSpawnError spawn_error = 5; - */ - value: ShellSpawnError; - case: "spawnError"; - } - | { - /** - * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 7; - */ - value: ShellPermissionDenied; - case: "permissionDenied"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ShellResult.result + */ + result: { + /** + * @generated from field: agent.v1.ShellSuccess success = 1; + */ + value: ShellSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ShellFailure failure = 2; + */ + value: ShellFailure; + case: "failure"; + } | { + /** + * @generated from field: agent.v1.ShellTimeout timeout = 3; + */ + value: ShellTimeout; + case: "timeout"; + } | { + /** + * @generated from field: agent.v1.ShellRejected rejected = 4; + */ + value: ShellRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.ShellSpawnError spawn_error = 5; + */ + value: ShellSpawnError; + case: "spawnError"; + } | { + /** + * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 7; + */ + value: ShellPermissionDenied; + case: "permissionDenied"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellResult. * Use `create(ShellResultSchema)` to create a new message. */ -export const ShellResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 389); +export const ShellResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 389); /** * @generated from message agent.v1.ShellStreamStdout */ export type ShellStreamStdout = Message<"agent.v1.ShellStreamStdout"> & { - /** - * @generated from field: string data = 1; - */ - data: string; + /** + * @generated from field: string data = 1; + */ + data: string; }; /** * Describes the message agent.v1.ShellStreamStdout. * Use `create(ShellStreamStdoutSchema)` to create a new message. */ -export const ShellStreamStdoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 390); +export const ShellStreamStdoutSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 390); /** * @generated from message agent.v1.ShellStreamStderr */ export type ShellStreamStderr = Message<"agent.v1.ShellStreamStderr"> & { - /** - * @generated from field: string data = 1; - */ - data: string; + /** + * @generated from field: string data = 1; + */ + data: string; }; /** * Describes the message agent.v1.ShellStreamStderr. * Use `create(ShellStreamStderrSchema)` to create a new message. */ -export const ShellStreamStderrSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 391); +export const ShellStreamStderrSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 391); /** * @generated from message agent.v1.ShellStreamExit */ export type ShellStreamExit = Message<"agent.v1.ShellStreamExit"> & { - /** - * @generated from field: uint32 code = 1; - */ - code: number; + /** + * @generated from field: uint32 code = 1; + */ + code: number; - /** - * @generated from field: string cwd = 2; - */ - cwd: string; + /** + * @generated from field: string cwd = 2; + */ + cwd: string; - /** - * @generated from field: optional agent.v1.OutputLocation output_location = 3; - */ - outputLocation?: OutputLocation; + /** + * @generated from field: optional agent.v1.OutputLocation output_location = 3; + */ + outputLocation?: OutputLocation | undefined; - /** - * @generated from field: bool aborted = 4; - */ - aborted: boolean; + /** + * @generated from field: bool aborted = 4; + */ + aborted: boolean; - /** - * If aborted is true, this field indicates the reason for the abort - * - * @generated from field: optional int32 abort_reason = 5; - */ - abortReason?: number; + /** + * If aborted is true, this field indicates the reason for the abort + * + * @generated from field: optional int32 abort_reason = 5; + */ + abortReason?: number | undefined; + + /** + * @generated from field: optional int32 local_execution_time_ms = 6; + */ + localExecutionTimeMs?: number | undefined; }; /** * Describes the message agent.v1.ShellStreamExit. * Use `create(ShellStreamExitSchema)` to create a new message. */ -export const ShellStreamExitSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 392); +export const ShellStreamExitSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 392); /** * @generated from message agent.v1.ShellStreamStart */ export type ShellStreamStart = Message<"agent.v1.ShellStreamStart"> & { - /** - * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 1; - */ - sandboxPolicy?: SandboxPolicy; + /** + * @generated from field: optional agent.v1.SandboxPolicy sandbox_policy = 1; + */ + sandboxPolicy?: SandboxPolicy | undefined; }; /** * Describes the message agent.v1.ShellStreamStart. * Use `create(ShellStreamStartSchema)` to create a new message. */ -export const ShellStreamStartSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 393); +export const ShellStreamStartSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 393); /** * @generated from message agent.v1.ShellStreamBackgrounded */ export type ShellStreamBackgrounded = Message<"agent.v1.ShellStreamBackgrounded"> & { - /** - * @generated from field: uint32 shell_id = 1; - */ - shellId: number; + /** + * @generated from field: uint32 shell_id = 1; + */ + shellId: number; - /** - * @generated from field: string command = 2; - */ - command: string; + /** + * @generated from field: string command = 2; + */ + command: string; - /** - * @generated from field: string working_directory = 3; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 3; + */ + workingDirectory: string; - /** - * @generated from field: optional uint32 pid = 4; - */ - pid?: number; + /** + * @generated from field: optional uint32 pid = 4; + */ + pid?: number | undefined; - /** - * The ms_to_wait value that was used for backgrounding, for display purposes - * - * @generated from field: optional int32 ms_to_wait = 5; - */ - msToWait?: number; + /** + * The ms_to_wait value that was used for backgrounding, for display purposes + * + * @generated from field: optional int32 ms_to_wait = 5; + */ + msToWait?: number | undefined; + + /** + * @generated from field: optional agent.v1.ShellBackgroundReason reason = 6; + */ + reason?: ShellBackgroundReason | undefined; }; /** * Describes the message agent.v1.ShellStreamBackgrounded. * Use `create(ShellStreamBackgroundedSchema)` to create a new message. */ -export const ShellStreamBackgroundedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 394); +export const ShellStreamBackgroundedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 394); /** * @generated from message agent.v1.ShellStream */ export type ShellStream = Message<"agent.v1.ShellStream"> & { - /** - * @generated from oneof agent.v1.ShellStream.event - */ - event: - | { - /** - * @generated from field: agent.v1.ShellStreamStdout stdout = 1; - */ - value: ShellStreamStdout; - case: "stdout"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamStderr stderr = 2; - */ - value: ShellStreamStderr; - case: "stderr"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamExit exit = 3; - */ - value: ShellStreamExit; - case: "exit"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamStart start = 4; - */ - value: ShellStreamStart; - case: "start"; - } - | { - /** - * @generated from field: agent.v1.ShellRejected rejected = 5; - */ - value: ShellRejected; - case: "rejected"; - } - | { - /** - * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 6; - */ - value: ShellPermissionDenied; - case: "permissionDenied"; - } - | { - /** - * @generated from field: agent.v1.ShellStreamBackgrounded backgrounded = 7; - */ - value: ShellStreamBackgrounded; - case: "backgrounded"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ShellStream.event + */ + event: { + /** + * @generated from field: agent.v1.ShellStreamStdout stdout = 1; + */ + value: ShellStreamStdout; + case: "stdout"; + } | { + /** + * @generated from field: agent.v1.ShellStreamStderr stderr = 2; + */ + value: ShellStreamStderr; + case: "stderr"; + } | { + /** + * @generated from field: agent.v1.ShellStreamExit exit = 3; + */ + value: ShellStreamExit; + case: "exit"; + } | { + /** + * @generated from field: agent.v1.ShellStreamStart start = 4; + */ + value: ShellStreamStart; + case: "start"; + } | { + /** + * @generated from field: agent.v1.ShellRejected rejected = 5; + */ + value: ShellRejected; + case: "rejected"; + } | { + /** + * @generated from field: agent.v1.ShellPermissionDenied permission_denied = 6; + */ + value: ShellPermissionDenied; + case: "permissionDenied"; + } | { + /** + * @generated from field: agent.v1.ShellStreamBackgrounded backgrounded = 7; + */ + value: ShellStreamBackgrounded; + case: "backgrounded"; + } | { + /** + * @generated from field: agent.v1.ShellStreamHookContext hook_context = 8; + */ + value: ShellStreamHookContext; + case: "hookContext"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellStream. * Use `create(ShellStreamSchema)` to create a new message. */ -export const ShellStreamSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 395); +export const ShellStreamSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 395); /** * @generated from message agent.v1.OutputLocation */ export type OutputLocation = Message<"agent.v1.OutputLocation"> & { - /** - * Absolute path to the output file - * - * @generated from field: string file_path = 1; - */ - filePath: string; + /** + * Absolute path to the output file + * + * @generated from field: string file_path = 1; + */ + filePath: string; - /** - * Size of the output in bytes - * - * @generated from field: int64 size_bytes = 2; - */ - sizeBytes: bigint; + /** + * Size of the output in bytes + * + * @generated from field: int64 size_bytes = 2; + */ + sizeBytes: bigint; - /** - * Number of lines in the output - * - * @generated from field: int64 line_count = 3; - */ - lineCount: bigint; + /** + * Number of lines in the output + * + * @generated from field: int64 line_count = 3; + */ + lineCount: bigint; }; /** * Describes the message agent.v1.OutputLocation. * Use `create(OutputLocationSchema)` to create a new message. */ -export const OutputLocationSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 396); +export const OutputLocationSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 396); /** * @generated from message agent.v1.ShellSuccess */ export type ShellSuccess = Message<"agent.v1.ShellSuccess"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: int32 exit_code = 3; - */ - exitCode: number; + /** + * @generated from field: int32 exit_code = 3; + */ + exitCode: number; - /** - * @generated from field: string signal = 4; - */ - signal: string; + /** + * @generated from field: string signal = 4; + */ + signal: string; - /** - * Inline stdout - populated when write_output_to_file is false, empty when true - * - * @generated from field: string stdout = 5; - */ - stdout: string; + /** + * Inline stdout - populated when write_output_to_file is false, empty when true + * + * @generated from field: string stdout = 5; + */ + stdout: string; - /** - * Inline stderr - populated when write_output_to_file is false, empty when true - * - * @generated from field: string stderr = 6; - */ - stderr: string; + /** + * Inline stderr - populated when write_output_to_file is false, empty when true + * + * @generated from field: string stderr = 6; + */ + stderr: string; - /** - * @generated from field: int32 execution_time = 7; - */ - executionTime: number; + /** + * @generated from field: int32 execution_time = 7; + */ + executionTime: number; - /** - * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) - * - * @generated from field: optional agent.v1.OutputLocation output_location = 8; - */ - outputLocation?: OutputLocation; + /** + * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) + * + * @generated from field: optional agent.v1.OutputLocation output_location = 8; + */ + outputLocation?: OutputLocation | undefined; - /** - * Used by background shell executor - * - * @generated from field: optional uint32 shell_id = 9; - */ - shellId?: number; + /** + * Used by background shell executor + * + * @generated from field: optional uint32 shell_id = 9; + */ + shellId?: number | undefined; - /** - * @generated from field: optional string interleaved_output = 10; - */ - interleavedOutput?: string; + /** + * @generated from field: optional string interleaved_output = 10; + */ + interleavedOutput?: string | undefined; - /** - * Process ID, used for backgrounded shells - * - * @generated from field: optional uint32 pid = 11; - */ - pid?: number; + /** + * Process ID, used for backgrounded shells + * + * @generated from field: optional uint32 pid = 11; + */ + pid?: number | undefined; - /** - * The ms_to_wait value used for backgrounding (for display in result) - * - * @generated from field: optional int32 ms_to_wait = 12; - */ - msToWait?: number; + /** + * The ms_to_wait value used for backgrounding (for display in result) + * + * @generated from field: optional int32 ms_to_wait = 12; + */ + msToWait?: number | undefined; + + /** + * @generated from field: optional int32 local_execution_time_ms = 13; + */ + localExecutionTimeMs?: number | undefined; + + /** + * @generated from field: optional agent.v1.ShellBackgroundReason background_reason = 14; + */ + backgroundReason?: ShellBackgroundReason | undefined; + + /** + * @generated from field: optional string output_head = 15; + */ + outputHead?: string | undefined; + + /** + * @generated from field: optional string output_tail = 16; + */ + outputTail?: string | undefined; + + /** + * @generated from field: optional uint32 elided_chars = 17; + */ + elidedChars?: number | undefined; }; /** * Describes the message agent.v1.ShellSuccess. * Use `create(ShellSuccessSchema)` to create a new message. */ -export const ShellSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 397); +export const ShellSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 397); /** * @generated from message agent.v1.ShellFailure */ export type ShellFailure = Message<"agent.v1.ShellFailure"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: int32 exit_code = 3; - */ - exitCode: number; + /** + * @generated from field: int32 exit_code = 3; + */ + exitCode: number; - /** - * @generated from field: string signal = 4; - */ - signal: string; + /** + * @generated from field: string signal = 4; + */ + signal: string; - /** - * Inline stdout - populated when write_output_to_file is false, empty when true - * - * @generated from field: string stdout = 5; - */ - stdout: string; + /** + * Inline stdout - populated when write_output_to_file is false, empty when true + * + * @generated from field: string stdout = 5; + */ + stdout: string; - /** - * Inline stderr - populated when write_output_to_file is false, empty when true - * - * @generated from field: string stderr = 6; - */ - stderr: string; + /** + * Inline stderr - populated when write_output_to_file is false, empty when true + * + * @generated from field: string stderr = 6; + */ + stderr: string; - /** - * @generated from field: int32 execution_time = 7; - */ - executionTime: number; + /** + * @generated from field: int32 execution_time = 7; + */ + executionTime: number; - /** - * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) - * - * @generated from field: optional agent.v1.OutputLocation output_location = 8; - */ - outputLocation?: OutputLocation; + /** + * File-based output - populated when write_output_to_file is true (chronologically merged stdout+stderr) + * + * @generated from field: optional agent.v1.OutputLocation output_location = 8; + */ + outputLocation?: OutputLocation | undefined; - /** - * @generated from field: optional string interleaved_output = 9; - */ - interleavedOutput?: string; + /** + * @generated from field: optional string interleaved_output = 9; + */ + interleavedOutput?: string | undefined; - /** - * If the command was aborted, this indicates the reason - * - * @generated from field: optional int32 abort_reason = 10; - */ - abortReason?: number; + /** + * If the command was aborted, this indicates the reason + * + * @generated from field: optional int32 abort_reason = 10; + */ + abortReason?: number | undefined; - /** - * Whether the command was aborted (by user or timeout) - * - * @generated from field: bool aborted = 11; - */ - aborted: boolean; + /** + * Whether the command was aborted (by user or timeout) + * + * @generated from field: bool aborted = 11; + */ + aborted: boolean; + + /** + * @generated from field: optional int32 local_execution_time_ms = 12; + */ + localExecutionTimeMs?: number | undefined; + + /** + * @generated from field: optional string output_head = 13; + */ + outputHead?: string | undefined; + + /** + * @generated from field: optional string output_tail = 14; + */ + outputTail?: string | undefined; + + /** + * @generated from field: optional uint32 elided_chars = 15; + */ + elidedChars?: number | undefined; }; /** * Describes the message agent.v1.ShellFailure. * Use `create(ShellFailureSchema)` to create a new message. */ -export const ShellFailureSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 398); +export const ShellFailureSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 398); /** * @generated from message agent.v1.ShellTimeout */ export type ShellTimeout = Message<"agent.v1.ShellTimeout"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: int32 timeout_ms = 3; - */ - timeoutMs: number; + /** + * @generated from field: int32 timeout_ms = 3; + */ + timeoutMs: number; }; /** * Describes the message agent.v1.ShellTimeout. * Use `create(ShellTimeoutSchema)` to create a new message. */ -export const ShellTimeoutSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 399); +export const ShellTimeoutSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 399); /** * @generated from message agent.v1.ShellRejected */ export type ShellRejected = Message<"agent.v1.ShellRejected"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: string reason = 3; - */ - reason: string; + /** + * @generated from field: string reason = 3; + */ + reason: string; - /** - * @generated from field: bool is_readonly = 4; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 4; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.ShellRejected. * Use `create(ShellRejectedSchema)` to create a new message. */ -export const ShellRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 400); +export const ShellRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 400); /** * @generated from message agent.v1.ShellPermissionDenied */ export type ShellPermissionDenied = Message<"agent.v1.ShellPermissionDenied"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: string error = 3; - */ - error: string; + /** + * @generated from field: string error = 3; + */ + error: string; - /** - * @generated from field: bool is_readonly = 4; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 4; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.ShellPermissionDenied. * Use `create(ShellPermissionDeniedSchema)` to create a new message. */ -export const ShellPermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 401); +export const ShellPermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 401); /** * @generated from message agent.v1.ShellSpawnError */ export type ShellSpawnError = Message<"agent.v1.ShellSpawnError"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: string working_directory = 2; - */ - workingDirectory: string; + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; - /** - * @generated from field: string error = 3; - */ - error: string; + /** + * @generated from field: string error = 3; + */ + error: string; }; /** * Describes the message agent.v1.ShellSpawnError. * Use `create(ShellSpawnErrorSchema)` to create a new message. */ -export const ShellSpawnErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 402); +export const ShellSpawnErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 402); /** * @generated from message agent.v1.ShellPartialResult */ export type ShellPartialResult = Message<"agent.v1.ShellPartialResult"> & { - /** - * @generated from field: string stdout_delta = 1; - */ - stdoutDelta: string; + /** + * @generated from field: string stdout_delta = 1; + */ + stdoutDelta: string; - /** - * @generated from field: string stderr_delta = 2; - */ - stderrDelta: string; + /** + * @generated from field: string stderr_delta = 2; + */ + stderrDelta: string; }; /** * Describes the message agent.v1.ShellPartialResult. * Use `create(ShellPartialResultSchema)` to create a new message. */ -export const ShellPartialResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 403); +export const ShellPartialResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 403); /** * @generated from message agent.v1.ShellToolCall */ export type ShellToolCall = Message<"agent.v1.ShellToolCall"> & { - /** - * @generated from field: agent.v1.ShellArgs args = 1; - */ - args?: ShellArgs; + /** + * @generated from field: agent.v1.ShellArgs args = 1; + */ + args?: ShellArgs | undefined; - /** - * @generated from field: agent.v1.ShellResult result = 2; - */ - result?: ShellResult; + /** + * @generated from field: agent.v1.ShellResult result = 2; + */ + result?: ShellResult | undefined; }; /** * Describes the message agent.v1.ShellToolCall. * Use `create(ShellToolCallSchema)` to create a new message. */ -export const ShellToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 404); +export const ShellToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 404); /** * @generated from message agent.v1.ShellToolCallStdoutDelta */ export type ShellToolCallStdoutDelta = Message<"agent.v1.ShellToolCallStdoutDelta"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; }; /** * Describes the message agent.v1.ShellToolCallStdoutDelta. * Use `create(ShellToolCallStdoutDeltaSchema)` to create a new message. */ -export const ShellToolCallStdoutDeltaSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 405); +export const ShellToolCallStdoutDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 405); /** * @generated from message agent.v1.ShellToolCallStderrDelta */ export type ShellToolCallStderrDelta = Message<"agent.v1.ShellToolCallStderrDelta"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; }; /** * Describes the message agent.v1.ShellToolCallStderrDelta. * Use `create(ShellToolCallStderrDeltaSchema)` to create a new message. */ -export const ShellToolCallStderrDeltaSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 406); +export const ShellToolCallStderrDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 406); /** * @generated from message agent.v1.ShellToolCallDelta */ export type ShellToolCallDelta = Message<"agent.v1.ShellToolCallDelta"> & { - /** - * @generated from oneof agent.v1.ShellToolCallDelta.delta - */ - delta: - | { - /** - * @generated from field: agent.v1.ShellToolCallStdoutDelta stdout = 1; - */ - value: ShellToolCallStdoutDelta; - case: "stdout"; - } - | { - /** - * @generated from field: agent.v1.ShellToolCallStderrDelta stderr = 2; - */ - value: ShellToolCallStderrDelta; - case: "stderr"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ShellToolCallDelta.delta + */ + delta: { + /** + * @generated from field: agent.v1.ShellToolCallStdoutDelta stdout = 1; + */ + value: ShellToolCallStdoutDelta; + case: "stdout"; + } | { + /** + * @generated from field: agent.v1.ShellToolCallStderrDelta stderr = 2; + */ + value: ShellToolCallStderrDelta; + case: "stderr"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ShellToolCallDelta. * Use `create(ShellToolCallDeltaSchema)` to create a new message. */ -export const ShellToolCallDeltaSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 407); +export const ShellToolCallDeltaSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 407); /** * @generated from message agent.v1.SubagentType */ export type SubagentType = Message<"agent.v1.SubagentType"> & { - /** - * @generated from oneof agent.v1.SubagentType.type - */ - type: - | { - /** - * @generated from field: agent.v1.SubagentTypeUnspecified unspecified = 1; - */ - value: SubagentTypeUnspecified; - case: "unspecified"; - } - | { - /** - * @generated from field: agent.v1.SubagentTypeComputerUse computer_use = 2; - */ - value: SubagentTypeComputerUse; - case: "computerUse"; - } - | { - /** - * @generated from field: agent.v1.SubagentTypeCustom custom = 3; - */ - value: SubagentTypeCustom; - case: "custom"; - } - | { - /** - * @generated from field: agent.v1.SubagentTypeExplore explore = 4; - */ - value: SubagentTypeExplore; - case: "explore"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SubagentType.type + */ + type: { + /** + * @generated from field: agent.v1.SubagentTypeUnspecified unspecified = 1; + */ + value: SubagentTypeUnspecified; + case: "unspecified"; + } | { + /** + * @generated from field: agent.v1.SubagentTypeComputerUse computer_use = 2; + */ + value: SubagentTypeComputerUse; + case: "computerUse"; + } | { + /** + * @generated from field: agent.v1.SubagentTypeCustom custom = 3; + */ + value: SubagentTypeCustom; + case: "custom"; + } | { + /** + * @generated from field: agent.v1.SubagentTypeExplore explore = 4; + */ + value: SubagentTypeExplore; + case: "explore"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SubagentType. * Use `create(SubagentTypeSchema)` to create a new message. */ -export const SubagentTypeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 408); +export const SubagentTypeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 408); /** * Empty message for unspecified subagent type * * @generated from message agent.v1.SubagentTypeUnspecified */ -export type SubagentTypeUnspecified = Message<"agent.v1.SubagentTypeUnspecified"> & {}; +export type SubagentTypeUnspecified = Message<"agent.v1.SubagentTypeUnspecified"> & { +}; /** * Describes the message agent.v1.SubagentTypeUnspecified. * Use `create(SubagentTypeUnspecifiedSchema)` to create a new message. */ -export const SubagentTypeUnspecifiedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 409); +export const SubagentTypeUnspecifiedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 409); /** * Empty message for computer use subagent type * * @generated from message agent.v1.SubagentTypeComputerUse */ -export type SubagentTypeComputerUse = Message<"agent.v1.SubagentTypeComputerUse"> & {}; +export type SubagentTypeComputerUse = Message<"agent.v1.SubagentTypeComputerUse"> & { +}; /** * Describes the message agent.v1.SubagentTypeComputerUse. * Use `create(SubagentTypeComputerUseSchema)` to create a new message. */ -export const SubagentTypeComputerUseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 410); +export const SubagentTypeComputerUseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 410); /** * Empty message for explore subagent type (read-only codebase exploration) * * @generated from message agent.v1.SubagentTypeExplore */ -export type SubagentTypeExplore = Message<"agent.v1.SubagentTypeExplore"> & {}; +export type SubagentTypeExplore = Message<"agent.v1.SubagentTypeExplore"> & { +}; /** * Describes the message agent.v1.SubagentTypeExplore. * Use `create(SubagentTypeExploreSchema)` to create a new message. */ -export const SubagentTypeExploreSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 411); +export const SubagentTypeExploreSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 411); /** * Custom subagent type with a name field @@ -12617,19 +13054,20 @@ export const SubagentTypeExploreSchema: GenMessage = /*@__P * @generated from message agent.v1.SubagentTypeCustom */ export type SubagentTypeCustom = Message<"agent.v1.SubagentTypeCustom"> & { - /** - * unique identifier of the custom subagent - * - * @generated from field: string name = 1; - */ - name: string; + /** + * unique identifier of the custom subagent + * + * @generated from field: string name = 1; + */ + name: string; }; /** * Describes the message agent.v1.SubagentTypeCustom. * Use `create(SubagentTypeCustomSchema)` to create a new message. */ -export const SubagentTypeCustomSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 412); +export const SubagentTypeCustomSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 412); /** * Custom subagent definition loaded from local workspace configuration. @@ -12637,332 +13075,330 @@ export const SubagentTypeCustomSchema: GenMessage = /*@__PUR * @generated from message agent.v1.CustomSubagent */ export type CustomSubagent = Message<"agent.v1.CustomSubagent"> & { - /** - * absolute path to the markdown definition file - * - * @generated from field: string full_path = 1; - */ - fullPath: string; + /** + * absolute path to the markdown definition file + * + * @generated from field: string full_path = 1; + */ + fullPath: string; - /** - * unique identifier of the subagent - * - * @generated from field: string name = 2; - */ - name: string; + /** + * unique identifier of the subagent + * + * @generated from field: string name = 2; + */ + name: string; - /** - * short summary of the agent's specialization - * - * @generated from field: string description = 3; - */ - description: string; + /** + * short summary of the agent's specialization + * + * @generated from field: string description = 3; + */ + description: string; - /** - * list of tool names the subagent can access - * - * @generated from field: repeated string tools = 4; - */ - tools: string[]; + /** + * list of tool names the subagent can access + * + * @generated from field: repeated string tools = 4; + */ + tools: string[]; - /** - * preferred model (or "inherit" to use parent's model) - * - * @generated from field: string model = 5; - */ - model: string; + /** + * preferred model (or "inherit" to use parent's model) + * + * @generated from field: string model = 5; + */ + model: string; - /** - * full prompt contents from the markdown file - * - * @generated from field: string prompt = 6; - */ - prompt: string; + /** + * full prompt contents from the markdown file + * + * @generated from field: string prompt = 6; + */ + prompt: string; - /** - * default permission mode for subagent execution - * - * @generated from field: int32 permission_mode = 7; - */ - permissionMode: number; + /** + * default permission mode for subagent execution + * + * @generated from field: int32 permission_mode = 7; + */ + permissionMode: number; }; /** * Describes the message agent.v1.CustomSubagent. * Use `create(CustomSubagentSchema)` to create a new message. */ -export const CustomSubagentSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 413); +export const CustomSubagentSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 413); /** * @generated from message agent.v1.SwitchModeArgs */ export type SwitchModeArgs = Message<"agent.v1.SwitchModeArgs"> & { - /** - * The unified mode id to switch to (agent/chat/plan/spec/debug/triage) - * - * @generated from field: string target_mode_id = 1; - */ - targetModeId: string; + /** + * The unified mode id to switch to (agent/chat/plan/spec/debug/triage) + * + * @generated from field: string target_mode_id = 1; + */ + targetModeId: string; - /** - * Optional explanation for why the mode switch is requested - * - * @generated from field: optional string explanation = 2; - */ - explanation?: string; + /** + * Optional explanation for why the mode switch is requested + * + * @generated from field: optional string explanation = 2; + */ + explanation?: string | undefined; - /** - * @generated from field: string tool_call_id = 3; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 3; + */ + toolCallId: string; }; /** * Describes the message agent.v1.SwitchModeArgs. * Use `create(SwitchModeArgsSchema)` to create a new message. */ -export const SwitchModeArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 414); +export const SwitchModeArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 414); /** * @generated from message agent.v1.SwitchModeResult */ export type SwitchModeResult = Message<"agent.v1.SwitchModeResult"> & { - /** - * @generated from oneof agent.v1.SwitchModeResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.SwitchModeSuccess success = 1; - */ - value: SwitchModeSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeError error = 2; - */ - value: SwitchModeError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeRejected rejected = 3; - */ - value: SwitchModeRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SwitchModeResult.result + */ + result: { + /** + * @generated from field: agent.v1.SwitchModeSuccess success = 1; + */ + value: SwitchModeSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.SwitchModeError error = 2; + */ + value: SwitchModeError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.SwitchModeRejected rejected = 3; + */ + value: SwitchModeRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SwitchModeResult. * Use `create(SwitchModeResultSchema)` to create a new message. */ -export const SwitchModeResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 415); +export const SwitchModeResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 415); /** * @generated from message agent.v1.SwitchModeSuccess */ export type SwitchModeSuccess = Message<"agent.v1.SwitchModeSuccess"> & { - /** - * The mode we switched from - * - * @generated from field: string from_mode_id = 1; - */ - fromModeId: string; + /** + * The mode we switched from + * + * @generated from field: string from_mode_id = 1; + */ + fromModeId: string; - /** - * The mode we switched to - * - * @generated from field: string to_mode_id = 2; - */ - toModeId: string; + /** + * The mode we switched to + * + * @generated from field: string to_mode_id = 2; + */ + toModeId: string; }; /** * Describes the message agent.v1.SwitchModeSuccess. * Use `create(SwitchModeSuccessSchema)` to create a new message. */ -export const SwitchModeSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 416); +export const SwitchModeSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 416); /** * @generated from message agent.v1.SwitchModeError */ export type SwitchModeError = Message<"agent.v1.SwitchModeError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.SwitchModeError. * Use `create(SwitchModeErrorSchema)` to create a new message. */ -export const SwitchModeErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 417); +export const SwitchModeErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 417); /** * @generated from message agent.v1.SwitchModeRejected */ export type SwitchModeRejected = Message<"agent.v1.SwitchModeRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.SwitchModeRejected. * Use `create(SwitchModeRejectedSchema)` to create a new message. */ -export const SwitchModeRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 418); +export const SwitchModeRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 418); /** * @generated from message agent.v1.SwitchModeToolCall */ export type SwitchModeToolCall = Message<"agent.v1.SwitchModeToolCall"> & { - /** - * @generated from field: agent.v1.SwitchModeArgs args = 1; - */ - args?: SwitchModeArgs; + /** + * @generated from field: agent.v1.SwitchModeArgs args = 1; + */ + args?: SwitchModeArgs | undefined; - /** - * @generated from field: agent.v1.SwitchModeResult result = 2; - */ - result?: SwitchModeResult; + /** + * @generated from field: agent.v1.SwitchModeResult result = 2; + */ + result?: SwitchModeResult | undefined; }; /** * Describes the message agent.v1.SwitchModeToolCall. * Use `create(SwitchModeToolCallSchema)` to create a new message. */ -export const SwitchModeToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 419); +export const SwitchModeToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 419); /** * @generated from message agent.v1.SwitchModeRequestQuery */ export type SwitchModeRequestQuery = Message<"agent.v1.SwitchModeRequestQuery"> & { - /** - * @generated from field: agent.v1.SwitchModeArgs args = 1; - */ - args?: SwitchModeArgs; + /** + * @generated from field: agent.v1.SwitchModeArgs args = 1; + */ + args?: SwitchModeArgs | undefined; }; /** * Describes the message agent.v1.SwitchModeRequestQuery. * Use `create(SwitchModeRequestQuerySchema)` to create a new message. */ -export const SwitchModeRequestQuerySchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 420); +export const SwitchModeRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 420); /** * @generated from message agent.v1.SwitchModeRequestResponse */ export type SwitchModeRequestResponse = Message<"agent.v1.SwitchModeRequestResponse"> & { - /** - * @generated from oneof agent.v1.SwitchModeRequestResponse.result - */ - result: - | { - /** - * @generated from field: agent.v1.SwitchModeRequestResponse_Approved approved = 1; - */ - value: SwitchModeRequestResponse_Approved; - case: "approved"; - } - | { - /** - * @generated from field: agent.v1.SwitchModeRequestResponse_Rejected rejected = 2; - */ - value: SwitchModeRequestResponse_Rejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.SwitchModeRequestResponse.result + */ + result: { + /** + * @generated from field: agent.v1.SwitchModeRequestResponse_Approved approved = 1; + */ + value: SwitchModeRequestResponse_Approved; + case: "approved"; + } | { + /** + * @generated from field: agent.v1.SwitchModeRequestResponse_Rejected rejected = 2; + */ + value: SwitchModeRequestResponse_Rejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.SwitchModeRequestResponse. * Use `create(SwitchModeRequestResponseSchema)` to create a new message. */ -export const SwitchModeRequestResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 421); +export const SwitchModeRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 421); /** * @generated from message agent.v1.SwitchModeRequestResponse_Approved */ -export type SwitchModeRequestResponse_Approved = Message<"agent.v1.SwitchModeRequestResponse_Approved"> & {}; +export type SwitchModeRequestResponse_Approved = Message<"agent.v1.SwitchModeRequestResponse_Approved"> & { +}; /** * Describes the message agent.v1.SwitchModeRequestResponse_Approved. * Use `create(SwitchModeRequestResponse_ApprovedSchema)` to create a new message. */ -export const SwitchModeRequestResponse_ApprovedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 422); +export const SwitchModeRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 422); /** * @generated from message agent.v1.SwitchModeRequestResponse_Rejected */ export type SwitchModeRequestResponse_Rejected = Message<"agent.v1.SwitchModeRequestResponse_Rejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.SwitchModeRequestResponse_Rejected. * Use `create(SwitchModeRequestResponse_RejectedSchema)` to create a new message. */ -export const SwitchModeRequestResponse_RejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 423); +export const SwitchModeRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 423); /** * @generated from message agent.v1.TodoItem */ export type TodoItem = Message<"agent.v1.TodoItem"> & { - /** - * @generated from field: string id = 1; - */ - id: string; + /** + * @generated from field: string id = 1; + */ + id: string; - /** - * @generated from field: string content = 2; - */ - content: string; + /** + * @generated from field: string content = 2; + */ + content: string; - /** - * @generated from field: int32 status = 3; - */ - status: number; + /** + * @generated from field: int32 status = 3; + */ + status: number; - /** - * @generated from field: int64 created_at = 4; - */ - createdAt: bigint; + /** + * @generated from field: int64 created_at = 4; + */ + createdAt: bigint; - /** - * @generated from field: int64 updated_at = 5; - */ - updatedAt: bigint; + /** + * @generated from field: int64 updated_at = 5; + */ + updatedAt: bigint; - /** - * IDs of other TODOs this depends on - * - * @generated from field: repeated string dependencies = 6; - */ - dependencies: string[]; + /** + * IDs of other TODOs this depends on + * + * @generated from field: repeated string dependencies = 6; + */ + dependencies: string[]; }; /** * Describes the message agent.v1.TodoItem. * Use `create(TodoItemSchema)` to create a new message. */ -export const TodoItemSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 424); +export const TodoItemSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 424); /** * UpdateTodos tool call @@ -12970,118 +13406,120 @@ export const TodoItemSchema: GenMessage = /*@__PURE__*/ messageDesc(fi * @generated from message agent.v1.UpdateTodosToolCall */ export type UpdateTodosToolCall = Message<"agent.v1.UpdateTodosToolCall"> & { - /** - * @generated from field: agent.v1.UpdateTodosArgs args = 1; - */ - args?: UpdateTodosArgs; + /** + * @generated from field: agent.v1.UpdateTodosArgs args = 1; + */ + args?: UpdateTodosArgs | undefined; - /** - * @generated from field: agent.v1.UpdateTodosResult result = 2; - */ - result?: UpdateTodosResult; + /** + * @generated from field: agent.v1.UpdateTodosResult result = 2; + */ + result?: UpdateTodosResult | undefined; }; /** * Describes the message agent.v1.UpdateTodosToolCall. * Use `create(UpdateTodosToolCallSchema)` to create a new message. */ -export const UpdateTodosToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 425); +export const UpdateTodosToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 425); /** * @generated from message agent.v1.UpdateTodosArgs */ export type UpdateTodosArgs = Message<"agent.v1.UpdateTodosArgs"> & { - /** - * @generated from field: repeated agent.v1.TodoItem todos = 1; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 1; + */ + todos: TodoItem[]; - /** - * @generated from field: bool merge = 2; - */ - merge: boolean; + /** + * @generated from field: bool merge = 2; + */ + merge: boolean; }; /** * Describes the message agent.v1.UpdateTodosArgs. * Use `create(UpdateTodosArgsSchema)` to create a new message. */ -export const UpdateTodosArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 426); +export const UpdateTodosArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 426); /** * @generated from message agent.v1.UpdateTodosResult */ export type UpdateTodosResult = Message<"agent.v1.UpdateTodosResult"> & { - /** - * @generated from oneof agent.v1.UpdateTodosResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.UpdateTodosSuccess success = 1; - */ - value: UpdateTodosSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.UpdateTodosError error = 2; - */ - value: UpdateTodosError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.UpdateTodosResult.result + */ + result: { + /** + * @generated from field: agent.v1.UpdateTodosSuccess success = 1; + */ + value: UpdateTodosSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.UpdateTodosError error = 2; + */ + value: UpdateTodosError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.UpdateTodosResult. * Use `create(UpdateTodosResultSchema)` to create a new message. */ -export const UpdateTodosResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 427); +export const UpdateTodosResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 427); /** * @generated from message agent.v1.UpdateTodosSuccess */ export type UpdateTodosSuccess = Message<"agent.v1.UpdateTodosSuccess"> & { - /** - * @generated from field: repeated agent.v1.TodoItem todos = 1; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 1; + */ + todos: TodoItem[]; - /** - * @generated from field: int32 total_count = 2; - */ - totalCount: number; + /** + * @generated from field: int32 total_count = 2; + */ + totalCount: number; - /** - * Whether this was a merge operation (needed for conditional rendering) - * - * @generated from field: bool was_merge = 3; - */ - wasMerge: boolean; + /** + * Whether this was a merge operation (needed for conditional rendering) + * + * @generated from field: bool was_merge = 3; + */ + wasMerge: boolean; }; /** * Describes the message agent.v1.UpdateTodosSuccess. * Use `create(UpdateTodosSuccessSchema)` to create a new message. */ -export const UpdateTodosSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 428); +export const UpdateTodosSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 428); /** * @generated from message agent.v1.UpdateTodosError */ export type UpdateTodosError = Message<"agent.v1.UpdateTodosError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.UpdateTodosError. * Use `create(UpdateTodosErrorSchema)` to create a new message. */ -export const UpdateTodosErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 429); +export const UpdateTodosErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 429); /** * ReadTodos tool call @@ -13089,1339 +13527,1336 @@ export const UpdateTodosErrorSchema: GenMessage = /*@__PURE__* * @generated from message agent.v1.ReadTodosToolCall */ export type ReadTodosToolCall = Message<"agent.v1.ReadTodosToolCall"> & { - /** - * @generated from field: agent.v1.ReadTodosArgs args = 1; - */ - args?: ReadTodosArgs; + /** + * @generated from field: agent.v1.ReadTodosArgs args = 1; + */ + args?: ReadTodosArgs | undefined; - /** - * @generated from field: agent.v1.ReadTodosResult result = 2; - */ - result?: ReadTodosResult; + /** + * @generated from field: agent.v1.ReadTodosResult result = 2; + */ + result?: ReadTodosResult | undefined; }; /** * Describes the message agent.v1.ReadTodosToolCall. * Use `create(ReadTodosToolCallSchema)` to create a new message. */ -export const ReadTodosToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 430); +export const ReadTodosToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 430); /** * @generated from message agent.v1.ReadTodosArgs */ export type ReadTodosArgs = Message<"agent.v1.ReadTodosArgs"> & { - /** - * Optional: filter by status - * - * @generated from field: repeated int32 status_filter = 1; - */ - statusFilter: number[]; + /** + * Optional: filter by status + * + * @generated from field: repeated int32 status_filter = 1; + */ + statusFilter: number[]; - /** - * Optional: filter by IDs - * - * @generated from field: repeated string id_filter = 2; - */ - idFilter: string[]; + /** + * Optional: filter by IDs + * + * @generated from field: repeated string id_filter = 2; + */ + idFilter: string[]; }; /** * Describes the message agent.v1.ReadTodosArgs. * Use `create(ReadTodosArgsSchema)` to create a new message. */ -export const ReadTodosArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 431); +export const ReadTodosArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 431); /** * @generated from message agent.v1.ReadTodosResult */ export type ReadTodosResult = Message<"agent.v1.ReadTodosResult"> & { - /** - * @generated from oneof agent.v1.ReadTodosResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.ReadTodosSuccess success = 1; - */ - value: ReadTodosSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.ReadTodosError error = 2; - */ - value: ReadTodosError; - case: "error"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ReadTodosResult.result + */ + result: { + /** + * @generated from field: agent.v1.ReadTodosSuccess success = 1; + */ + value: ReadTodosSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ReadTodosError error = 2; + */ + value: ReadTodosError; + case: "error"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ReadTodosResult. * Use `create(ReadTodosResultSchema)` to create a new message. */ -export const ReadTodosResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 432); +export const ReadTodosResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 432); /** * @generated from message agent.v1.ReadTodosSuccess */ export type ReadTodosSuccess = Message<"agent.v1.ReadTodosSuccess"> & { - /** - * @generated from field: repeated agent.v1.TodoItem todos = 1; - */ - todos: TodoItem[]; + /** + * @generated from field: repeated agent.v1.TodoItem todos = 1; + */ + todos: TodoItem[]; - /** - * @generated from field: int32 total_count = 2; - */ - totalCount: number; + /** + * @generated from field: int32 total_count = 2; + */ + totalCount: number; }; /** * Describes the message agent.v1.ReadTodosSuccess. * Use `create(ReadTodosSuccessSchema)` to create a new message. */ -export const ReadTodosSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 433); +export const ReadTodosSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 433); /** * @generated from message agent.v1.ReadTodosError */ export type ReadTodosError = Message<"agent.v1.ReadTodosError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.ReadTodosError. * Use `create(ReadTodosErrorSchema)` to create a new message. */ -export const ReadTodosErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 434); +export const ReadTodosErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 434); /** * @generated from message agent.v1.Range */ export type Range = Message<"agent.v1.Range"> & { - /** - * @generated from field: agent.v1.Position start = 1; - */ - start?: Position; + /** + * @generated from field: agent.v1.Position start = 1; + */ + start?: Position | undefined; - /** - * @generated from field: agent.v1.Position end = 2; - */ - end?: Position; + /** + * @generated from field: agent.v1.Position end = 2; + */ + end?: Position | undefined; }; /** * Describes the message agent.v1.Range. * Use `create(RangeSchema)` to create a new message. */ -export const RangeSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 435); +export const RangeSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 435); /** * @generated from message agent.v1.Position */ export type Position = Message<"agent.v1.Position"> & { - /** - * @generated from field: uint32 line = 1; - */ - line: number; + /** + * @generated from field: uint32 line = 1; + */ + line: number; - /** - * @generated from field: uint32 column = 2; - */ - column: number; + /** + * @generated from field: uint32 column = 2; + */ + column: number; }; /** * Describes the message agent.v1.Position. * Use `create(PositionSchema)` to create a new message. */ -export const PositionSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 436); +export const PositionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 436); /** * @generated from message agent.v1.Error */ export type Error = Message<"agent.v1.Error"> & { - /** - * @generated from field: string message = 1; - */ - message: string; + /** + * @generated from field: string message = 1; + */ + message: string; }; /** * Describes the message agent.v1.Error. * Use `create(ErrorSchema)` to create a new message. */ -export const ErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 437); +export const ErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 437); /** * @generated from message agent.v1.WebSearchArgs */ export type WebSearchArgs = Message<"agent.v1.WebSearchArgs"> & { - /** - * @generated from field: string search_term = 1; - */ - searchTerm: string; + /** + * @generated from field: string search_term = 1; + */ + searchTerm: string; - /** - * @generated from field: string tool_call_id = 2; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; }; /** * Describes the message agent.v1.WebSearchArgs. * Use `create(WebSearchArgsSchema)` to create a new message. */ -export const WebSearchArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 438); +export const WebSearchArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 438); /** * @generated from message agent.v1.WebSearchResult */ export type WebSearchResult = Message<"agent.v1.WebSearchResult"> & { - /** - * @generated from oneof agent.v1.WebSearchResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.WebSearchSuccess success = 1; - */ - value: WebSearchSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.WebSearchError error = 2; - */ - value: WebSearchError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.WebSearchRejected rejected = 3; - */ - value: WebSearchRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.WebSearchResult.result + */ + result: { + /** + * @generated from field: agent.v1.WebSearchSuccess success = 1; + */ + value: WebSearchSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.WebSearchError error = 2; + */ + value: WebSearchError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.WebSearchRejected rejected = 3; + */ + value: WebSearchRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WebSearchResult. * Use `create(WebSearchResultSchema)` to create a new message. */ -export const WebSearchResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 439); +export const WebSearchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 439); /** * @generated from message agent.v1.WebSearchSuccess */ export type WebSearchSuccess = Message<"agent.v1.WebSearchSuccess"> & { - /** - * @generated from field: repeated agent.v1.WebSearchReference references = 1; - */ - references: WebSearchReference[]; + /** + * @generated from field: repeated agent.v1.WebSearchReference references = 1; + */ + references: WebSearchReference[]; }; /** * Describes the message agent.v1.WebSearchSuccess. * Use `create(WebSearchSuccessSchema)` to create a new message. */ -export const WebSearchSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 440); +export const WebSearchSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 440); /** * @generated from message agent.v1.WebSearchError */ export type WebSearchError = Message<"agent.v1.WebSearchError"> & { - /** - * @generated from field: string error = 1; - */ - error: string; + /** + * @generated from field: string error = 1; + */ + error: string; }; /** * Describes the message agent.v1.WebSearchError. * Use `create(WebSearchErrorSchema)` to create a new message. */ -export const WebSearchErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 441); +export const WebSearchErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 441); /** * @generated from message agent.v1.WebSearchRejected */ export type WebSearchRejected = Message<"agent.v1.WebSearchRejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.WebSearchRejected. * Use `create(WebSearchRejectedSchema)` to create a new message. */ -export const WebSearchRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 442); +export const WebSearchRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 442); /** * @generated from message agent.v1.WebSearchReference */ export type WebSearchReference = Message<"agent.v1.WebSearchReference"> & { - /** - * @generated from field: string title = 1; - */ - title: string; + /** + * @generated from field: string title = 1; + */ + title: string; - /** - * @generated from field: string url = 2; - */ - url: string; + /** + * @generated from field: string url = 2; + */ + url: string; - /** - * @generated from field: string chunk = 3; - */ - chunk: string; + /** + * @generated from field: string chunk = 3; + */ + chunk: string; }; /** * Describes the message agent.v1.WebSearchReference. * Use `create(WebSearchReferenceSchema)` to create a new message. */ -export const WebSearchReferenceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 443); +export const WebSearchReferenceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 443); /** * @generated from message agent.v1.WebSearchToolCall */ export type WebSearchToolCall = Message<"agent.v1.WebSearchToolCall"> & { - /** - * @generated from field: agent.v1.WebSearchArgs args = 1; - */ - args?: WebSearchArgs; + /** + * @generated from field: agent.v1.WebSearchArgs args = 1; + */ + args?: WebSearchArgs | undefined; - /** - * @generated from field: agent.v1.WebSearchResult result = 2; - */ - result?: WebSearchResult; + /** + * @generated from field: agent.v1.WebSearchResult result = 2; + */ + result?: WebSearchResult | undefined; }; /** * Describes the message agent.v1.WebSearchToolCall. * Use `create(WebSearchToolCallSchema)` to create a new message. */ -export const WebSearchToolCallSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 444); +export const WebSearchToolCallSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 444); /** * @generated from message agent.v1.WebSearchRequestQuery */ export type WebSearchRequestQuery = Message<"agent.v1.WebSearchRequestQuery"> & { - /** - * @generated from field: agent.v1.WebSearchArgs args = 1; - */ - args?: WebSearchArgs; + /** + * @generated from field: agent.v1.WebSearchArgs args = 1; + */ + args?: WebSearchArgs | undefined; }; /** * Describes the message agent.v1.WebSearchRequestQuery. * Use `create(WebSearchRequestQuerySchema)` to create a new message. */ -export const WebSearchRequestQuerySchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 445); +export const WebSearchRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 445); /** * @generated from message agent.v1.WebSearchRequestResponse */ export type WebSearchRequestResponse = Message<"agent.v1.WebSearchRequestResponse"> & { - /** - * @generated from oneof agent.v1.WebSearchRequestResponse.result - */ - result: - | { - /** - * @generated from field: agent.v1.WebSearchRequestResponse_Approved approved = 1; - */ - value: WebSearchRequestResponse_Approved; - case: "approved"; - } - | { - /** - * @generated from field: agent.v1.WebSearchRequestResponse_Rejected rejected = 2; - */ - value: WebSearchRequestResponse_Rejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.WebSearchRequestResponse.result + */ + result: { + /** + * @generated from field: agent.v1.WebSearchRequestResponse_Approved approved = 1; + */ + value: WebSearchRequestResponse_Approved; + case: "approved"; + } | { + /** + * @generated from field: agent.v1.WebSearchRequestResponse_Rejected rejected = 2; + */ + value: WebSearchRequestResponse_Rejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WebSearchRequestResponse. * Use `create(WebSearchRequestResponseSchema)` to create a new message. */ -export const WebSearchRequestResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 446); +export const WebSearchRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 446); /** * @generated from message agent.v1.WebSearchRequestResponse_Approved */ -export type WebSearchRequestResponse_Approved = Message<"agent.v1.WebSearchRequestResponse_Approved"> & {}; +export type WebSearchRequestResponse_Approved = Message<"agent.v1.WebSearchRequestResponse_Approved"> & { +}; /** * Describes the message agent.v1.WebSearchRequestResponse_Approved. * Use `create(WebSearchRequestResponse_ApprovedSchema)` to create a new message. */ -export const WebSearchRequestResponse_ApprovedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 447); +export const WebSearchRequestResponse_ApprovedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 447); /** * @generated from message agent.v1.WebSearchRequestResponse_Rejected */ export type WebSearchRequestResponse_Rejected = Message<"agent.v1.WebSearchRequestResponse_Rejected"> & { - /** - * @generated from field: string reason = 1; - */ - reason: string; + /** + * @generated from field: string reason = 1; + */ + reason: string; }; /** * Describes the message agent.v1.WebSearchRequestResponse_Rejected. * Use `create(WebSearchRequestResponse_RejectedSchema)` to create a new message. */ -export const WebSearchRequestResponse_RejectedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 448); +export const WebSearchRequestResponse_RejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 448); /** * @generated from message agent.v1.WriteArgs */ export type WriteArgs = Message<"agent.v1.WriteArgs"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string file_text = 2; - */ - fileText: string; + /** + * @generated from field: string file_text = 2; + */ + fileText: string; - /** - * @generated from field: string tool_call_id = 3; - */ - toolCallId: string; + /** + * @generated from field: string tool_call_id = 3; + */ + toolCallId: string; - /** - * @generated from field: bool return_file_content_after_write = 4; - */ - returnFileContentAfterWrite: boolean; + /** + * @generated from field: bool return_file_content_after_write = 4; + */ + returnFileContentAfterWrite: boolean; - /** - * Raw binary data to write. When set, file_text is ignored and the bytes are written directly without any text processing (e.g., line ending normalization). - * - * @generated from field: bytes file_bytes = 5; - */ - fileBytes: Uint8Array; + /** + * Raw binary data to write. When set, file_text is ignored and the bytes are written directly without any text processing (e.g., line ending normalization). + * + * @generated from field: bytes file_bytes = 5; + */ + fileBytes: Uint8Array; + + /** + * @generated from field: optional string encoding_hint = 6; + */ + encodingHint?: string | undefined; }; /** * Describes the message agent.v1.WriteArgs. * Use `create(WriteArgsSchema)` to create a new message. */ -export const WriteArgsSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 449); +export const WriteArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 449); /** * @generated from message agent.v1.WriteResult */ export type WriteResult = Message<"agent.v1.WriteResult"> & { - /** - * @generated from oneof agent.v1.WriteResult.result - */ - result: - | { - /** - * @generated from field: agent.v1.WriteSuccess success = 1; - */ - value: WriteSuccess; - case: "success"; - } - | { - /** - * @generated from field: agent.v1.WritePermissionDenied permission_denied = 3; - */ - value: WritePermissionDenied; - case: "permissionDenied"; - } - | { - /** - * @generated from field: agent.v1.WriteNoSpace no_space = 4; - */ - value: WriteNoSpace; - case: "noSpace"; - } - | { - /** - * @generated from field: agent.v1.WriteError error = 5; - */ - value: WriteError; - case: "error"; - } - | { - /** - * @generated from field: agent.v1.WriteRejected rejected = 6; - */ - value: WriteRejected; - case: "rejected"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.WriteResult.result + */ + result: { + /** + * @generated from field: agent.v1.WriteSuccess success = 1; + */ + value: WriteSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.WritePermissionDenied permission_denied = 3; + */ + value: WritePermissionDenied; + case: "permissionDenied"; + } | { + /** + * @generated from field: agent.v1.WriteNoSpace no_space = 4; + */ + value: WriteNoSpace; + case: "noSpace"; + } | { + /** + * @generated from field: agent.v1.WriteError error = 5; + */ + value: WriteError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.WriteRejected rejected = 6; + */ + value: WriteRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.WriteResult. * Use `create(WriteResultSchema)` to create a new message. */ -export const WriteResultSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 450); +export const WriteResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 450); /** * @generated from message agent.v1.WriteSuccess */ export type WriteSuccess = Message<"agent.v1.WriteSuccess"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: int32 lines_created = 2; - */ - linesCreated: number; + /** + * @generated from field: int32 lines_created = 2; + */ + linesCreated: number; - /** - * @generated from field: int32 file_size = 3; - */ - fileSize: number; + /** + * @generated from field: int32 file_size = 3; + */ + fileSize: number; - /** - * @generated from field: optional string file_content_after_write = 4; - */ - fileContentAfterWrite?: string; + /** + * @generated from field: optional string file_content_after_write = 4; + */ + fileContentAfterWrite?: string | undefined; }; /** * Describes the message agent.v1.WriteSuccess. * Use `create(WriteSuccessSchema)` to create a new message. */ -export const WriteSuccessSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 451); +export const WriteSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 451); /** * @generated from message agent.v1.WritePermissionDenied */ export type WritePermissionDenied = Message<"agent.v1.WritePermissionDenied"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string directory = 2; - */ - directory: string; + /** + * @generated from field: string directory = 2; + */ + directory: string; - /** - * "create_directory" or "create_file" - * - * @generated from field: string operation = 3; - */ - operation: string; + /** + * "create_directory" or "create_file" + * + * @generated from field: string operation = 3; + */ + operation: string; - /** - * @generated from field: string error = 4; - */ - error: string; + /** + * @generated from field: string error = 4; + */ + error: string; - /** - * @generated from field: bool is_readonly = 5; - */ - isReadonly: boolean; + /** + * @generated from field: bool is_readonly = 5; + */ + isReadonly: boolean; }; /** * Describes the message agent.v1.WritePermissionDenied. * Use `create(WritePermissionDeniedSchema)` to create a new message. */ -export const WritePermissionDeniedSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 452); +export const WritePermissionDeniedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 452); /** * @generated from message agent.v1.WriteNoSpace */ export type WriteNoSpace = Message<"agent.v1.WriteNoSpace"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.WriteNoSpace. * Use `create(WriteNoSpaceSchema)` to create a new message. */ -export const WriteNoSpaceSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 453); +export const WriteNoSpaceSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 453); /** * @generated from message agent.v1.WriteError */ export type WriteError = Message<"agent.v1.WriteError"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string error = 2; - */ - error: string; + /** + * @generated from field: string error = 2; + */ + error: string; }; /** * Describes the message agent.v1.WriteError. * Use `create(WriteErrorSchema)` to create a new message. */ -export const WriteErrorSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 454); +export const WriteErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 454); /** * @generated from message agent.v1.WriteRejected */ export type WriteRejected = Message<"agent.v1.WriteRejected"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string reason = 2; - */ - reason: string; + /** + * @generated from field: string reason = 2; + */ + reason: string; }; /** * Describes the message agent.v1.WriteRejected. * Use `create(WriteRejectedSchema)` to create a new message. */ -export const WriteRejectedSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 455); +export const WriteRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 455); /** * @generated from message agent.v1.BootstrapStatsigRequest */ export type BootstrapStatsigRequest = Message<"agent.v1.BootstrapStatsigRequest"> & { - /** - * When true, the server should evaluate gates as if dev/internal status is ignored. This is used by clients to simulate a prod user experience. - * - * @generated from field: optional bool ignore_dev_status = 1; - */ - ignoreDevStatus?: boolean; + /** + * When true, the server should evaluate gates as if dev/internal status is ignored. This is used by clients to simulate a prod user experience. + * + * @generated from field: optional bool ignore_dev_status = 1; + */ + ignoreDevStatus?: boolean | undefined; - /** - * @generated from field: optional int32 operating_system = 2; - */ - operatingSystem?: number; + /** + * @generated from field: optional int32 operating_system = 2; + */ + operatingSystem?: number | undefined; }; /** * Describes the message agent.v1.BootstrapStatsigRequest. * Use `create(BootstrapStatsigRequestSchema)` to create a new message. */ -export const BootstrapStatsigRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 456); +export const BootstrapStatsigRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 456); /** * @generated from message agent.v1.PingResponse */ -export type PingResponse = Message<"agent.v1.PingResponse"> & {}; +export type PingResponse = Message<"agent.v1.PingResponse"> & { +}; /** * Describes the message agent.v1.PingResponse. * Use `create(PingResponseSchema)` to create a new message. */ -export const PingResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 457); +export const PingResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 457); /** * @generated from message agent.v1.ExecRequest */ export type ExecRequest = Message<"agent.v1.ExecRequest"> & { - /** - * @generated from field: string command = 1; - */ - command: string; + /** + * @generated from field: string command = 1; + */ + command: string; - /** - * @generated from field: optional string cwd = 2; - */ - cwd?: string; + /** + * @generated from field: optional string cwd = 2; + */ + cwd?: string | undefined; - /** - * @generated from field: repeated string args = 3; - */ - args: string[]; + /** + * @generated from field: repeated string args = 3; + */ + args: string[]; - /** - * @generated from field: map environment = 4; - */ - environment: { [key: string]: string }; + /** + * @generated from field: map environment = 4; + */ + environment: { [key: string]: string }; }; /** * Describes the message agent.v1.ExecRequest. * Use `create(ExecRequestSchema)` to create a new message. */ -export const ExecRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 458); +export const ExecRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 458); /** * @generated from message agent.v1.ExecResponse */ export type ExecResponse = Message<"agent.v1.ExecResponse"> & { - /** - * @generated from oneof agent.v1.ExecResponse.event - */ - event: - | { - /** - * @generated from field: agent.v1.StdoutEvent stdout_event = 1; - */ - value: StdoutEvent; - case: "stdoutEvent"; - } - | { - /** - * @generated from field: agent.v1.StderrEvent stderr_event = 2; - */ - value: StderrEvent; - case: "stderrEvent"; - } - | { - /** - * @generated from field: agent.v1.ExitEvent exit_event = 3; - */ - value: ExitEvent; - case: "exitEvent"; - } - | { case: undefined; value?: undefined }; + /** + * @generated from oneof agent.v1.ExecResponse.event + */ + event: { + /** + * @generated from field: agent.v1.StdoutEvent stdout_event = 1; + */ + value: StdoutEvent; + case: "stdoutEvent"; + } | { + /** + * @generated from field: agent.v1.StderrEvent stderr_event = 2; + */ + value: StderrEvent; + case: "stderrEvent"; + } | { + /** + * @generated from field: agent.v1.ExitEvent exit_event = 3; + */ + value: ExitEvent; + case: "exitEvent"; + } | { case: undefined; value?: undefined }; }; /** * Describes the message agent.v1.ExecResponse. * Use `create(ExecResponseSchema)` to create a new message. */ -export const ExecResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 459); +export const ExecResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 459); /** * @generated from message agent.v1.StdoutEvent */ export type StdoutEvent = Message<"agent.v1.StdoutEvent"> & { - /** - * @generated from field: string data = 1; - */ - data: string; + /** + * @generated from field: string data = 1; + */ + data: string; }; /** * Describes the message agent.v1.StdoutEvent. * Use `create(StdoutEventSchema)` to create a new message. */ -export const StdoutEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 460); +export const StdoutEventSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 460); /** * @generated from message agent.v1.StderrEvent */ export type StderrEvent = Message<"agent.v1.StderrEvent"> & { - /** - * @generated from field: string data = 1; - */ - data: string; + /** + * @generated from field: string data = 1; + */ + data: string; }; /** * Describes the message agent.v1.StderrEvent. * Use `create(StderrEventSchema)` to create a new message. */ -export const StderrEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 461); +export const StderrEventSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 461); /** * @generated from message agent.v1.ExitEvent */ export type ExitEvent = Message<"agent.v1.ExitEvent"> & { - /** - * @generated from field: int32 exit_code = 1; - */ - exitCode: number; + /** + * @generated from field: int32 exit_code = 1; + */ + exitCode: number; }; /** * Describes the message agent.v1.ExitEvent. * Use `create(ExitEventSchema)` to create a new message. */ -export const ExitEventSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 462); +export const ExitEventSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 462); /** * @generated from message agent.v1.ReadTextFileRequest */ export type ReadTextFileRequest = Message<"agent.v1.ReadTextFileRequest"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.ReadTextFileRequest. * Use `create(ReadTextFileRequestSchema)` to create a new message. */ -export const ReadTextFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 463); +export const ReadTextFileRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 463); /** * @generated from message agent.v1.ReadTextFileResponse */ export type ReadTextFileResponse = Message<"agent.v1.ReadTextFileResponse"> & { - /** - * @generated from field: string content = 1; - */ - content: string; + /** + * @generated from field: string content = 1; + */ + content: string; }; /** * Describes the message agent.v1.ReadTextFileResponse. * Use `create(ReadTextFileResponseSchema)` to create a new message. */ -export const ReadTextFileResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 464); +export const ReadTextFileResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 464); /** * @generated from message agent.v1.WriteTextFileRequest */ export type WriteTextFileRequest = Message<"agent.v1.WriteTextFileRequest"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: string content = 2; - */ - content: string; + /** + * @generated from field: string content = 2; + */ + content: string; }; /** * Describes the message agent.v1.WriteTextFileRequest. * Use `create(WriteTextFileRequestSchema)` to create a new message. */ -export const WriteTextFileRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 465); +export const WriteTextFileRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 465); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WriteTextFileResponse */ -export type WriteTextFileResponse = Message<"agent.v1.WriteTextFileResponse"> & {}; +export type WriteTextFileResponse = Message<"agent.v1.WriteTextFileResponse"> & { +}; /** * Describes the message agent.v1.WriteTextFileResponse. * Use `create(WriteTextFileResponseSchema)` to create a new message. */ -export const WriteTextFileResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 466); +export const WriteTextFileResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 466); /** * @generated from message agent.v1.ReadBinaryFileRequest */ export type ReadBinaryFileRequest = Message<"agent.v1.ReadBinaryFileRequest"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; }; /** * Describes the message agent.v1.ReadBinaryFileRequest. * Use `create(ReadBinaryFileRequestSchema)` to create a new message. */ -export const ReadBinaryFileRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 467); +export const ReadBinaryFileRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 467); /** * @generated from message agent.v1.ReadBinaryFileResponse */ export type ReadBinaryFileResponse = Message<"agent.v1.ReadBinaryFileResponse"> & { - /** - * @generated from field: bytes content = 1; - */ - content: Uint8Array; + /** + * @generated from field: bytes content = 1; + */ + content: Uint8Array; }; /** * Describes the message agent.v1.ReadBinaryFileResponse. * Use `create(ReadBinaryFileResponseSchema)` to create a new message. */ -export const ReadBinaryFileResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 468); +export const ReadBinaryFileResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 468); /** * @generated from message agent.v1.WriteBinaryFileRequest */ export type WriteBinaryFileRequest = Message<"agent.v1.WriteBinaryFileRequest"> & { - /** - * @generated from field: string path = 1; - */ - path: string; + /** + * @generated from field: string path = 1; + */ + path: string; - /** - * @generated from field: bytes content = 2; - */ - content: Uint8Array; + /** + * @generated from field: bytes content = 2; + */ + content: Uint8Array; }; /** * Describes the message agent.v1.WriteBinaryFileRequest. * Use `create(WriteBinaryFileRequestSchema)` to create a new message. */ -export const WriteBinaryFileRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 469); +export const WriteBinaryFileRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 469); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WriteBinaryFileResponse */ -export type WriteBinaryFileResponse = Message<"agent.v1.WriteBinaryFileResponse"> & {}; +export type WriteBinaryFileResponse = Message<"agent.v1.WriteBinaryFileResponse"> & { +}; /** * Describes the message agent.v1.WriteBinaryFileResponse. * Use `create(WriteBinaryFileResponseSchema)` to create a new message. */ -export const WriteBinaryFileResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 470); +export const WriteBinaryFileResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 470); /** * @generated from message agent.v1.GetWorkspaceChangesHashRequest */ export type GetWorkspaceChangesHashRequest = Message<"agent.v1.GetWorkspaceChangesHashRequest"> & { - /** - * @generated from field: string root_path = 1; - */ - rootPath: string; + /** + * @generated from field: string root_path = 1; + */ + rootPath: string; - /** - * @generated from field: string base_ref = 2; - */ - baseRef: string; + /** + * @generated from field: string base_ref = 2; + */ + baseRef: string; }; /** * Describes the message agent.v1.GetWorkspaceChangesHashRequest. * Use `create(GetWorkspaceChangesHashRequestSchema)` to create a new message. */ -export const GetWorkspaceChangesHashRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 471); +export const GetWorkspaceChangesHashRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 471); /** * @generated from message agent.v1.GetWorkspaceChangesHashResponse */ export type GetWorkspaceChangesHashResponse = Message<"agent.v1.GetWorkspaceChangesHashResponse"> & { - /** - * @generated from field: string hash = 1; - */ - hash: string; + /** + * @generated from field: string hash = 1; + */ + hash: string; }; /** * Describes the message agent.v1.GetWorkspaceChangesHashResponse. * Use `create(GetWorkspaceChangesHashResponseSchema)` to create a new message. */ -export const GetWorkspaceChangesHashResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 472); +export const GetWorkspaceChangesHashResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 472); /** * @generated from message agent.v1.RefreshGithubAccessTokenRequest */ export type RefreshGithubAccessTokenRequest = Message<"agent.v1.RefreshGithubAccessTokenRequest"> & { - /** - * @generated from field: string github_access_token = 1; - */ - githubAccessToken: string; + /** + * @generated from field: string github_access_token = 1; + */ + githubAccessToken: string; - /** - * e.g., "github.com", "gitlab.com", "gitlab.example.com" - * - * @generated from field: string hostname = 2; - */ - hostname: string; + /** + * e.g., "github.com", "gitlab.com", "gitlab.example.com" + * + * @generated from field: string hostname = 2; + */ + hostname: string; }; /** * Describes the message agent.v1.RefreshGithubAccessTokenRequest. * Use `create(RefreshGithubAccessTokenRequestSchema)` to create a new message. */ -export const RefreshGithubAccessTokenRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 473); +export const RefreshGithubAccessTokenRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 473); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.RefreshGithubAccessTokenResponse */ -export type RefreshGithubAccessTokenResponse = Message<"agent.v1.RefreshGithubAccessTokenResponse"> & {}; +export type RefreshGithubAccessTokenResponse = Message<"agent.v1.RefreshGithubAccessTokenResponse"> & { +}; /** * Describes the message agent.v1.RefreshGithubAccessTokenResponse. * Use `create(RefreshGithubAccessTokenResponseSchema)` to create a new message. */ -export const RefreshGithubAccessTokenResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 474); +export const RefreshGithubAccessTokenResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 474); /** * @generated from message agent.v1.WarmRemoteAccessServerRequest */ export type WarmRemoteAccessServerRequest = Message<"agent.v1.WarmRemoteAccessServerRequest"> & { - /** - * @generated from field: string commit = 1; - */ - commit: string; + /** + * @generated from field: string commit = 1; + */ + commit: string; - /** - * @generated from field: int32 port = 2; - */ - port: number; + /** + * @generated from field: int32 port = 2; + */ + port: number; - /** - * @generated from field: string connection_token = 3; - */ - connectionToken: string; + /** + * @generated from field: string connection_token = 3; + */ + connectionToken: string; }; /** * Describes the message agent.v1.WarmRemoteAccessServerRequest. * Use `create(WarmRemoteAccessServerRequestSchema)` to create a new message. */ -export const WarmRemoteAccessServerRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 475); +export const WarmRemoteAccessServerRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 475); /** * Empty response - success is implied by RPC completion * * @generated from message agent.v1.WarmRemoteAccessServerResponse */ -export type WarmRemoteAccessServerResponse = Message<"agent.v1.WarmRemoteAccessServerResponse"> & {}; +export type WarmRemoteAccessServerResponse = Message<"agent.v1.WarmRemoteAccessServerResponse"> & { +}; /** * Describes the message agent.v1.WarmRemoteAccessServerResponse. * Use `create(WarmRemoteAccessServerResponseSchema)` to create a new message. */ -export const WarmRemoteAccessServerResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 476); +export const WarmRemoteAccessServerResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 476); /** * @generated from message agent.v1.ListArtifactsRequest */ -export type ListArtifactsRequest = Message<"agent.v1.ListArtifactsRequest"> & {}; +export type ListArtifactsRequest = Message<"agent.v1.ListArtifactsRequest"> & { +}; /** * Describes the message agent.v1.ListArtifactsRequest. * Use `create(ListArtifactsRequestSchema)` to create a new message. */ -export const ListArtifactsRequestSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 477); +export const ListArtifactsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 477); /** * @generated from message agent.v1.ArtifactUploadMetadata */ export type ArtifactUploadMetadata = Message<"agent.v1.ArtifactUploadMetadata"> & { - /** - * @generated from field: string absolute_path = 1; - */ - absolutePath: string; + /** + * @generated from field: string absolute_path = 1; + */ + absolutePath: string; - /** - * @generated from field: uint64 size_bytes = 2; - */ - sizeBytes: bigint; + /** + * @generated from field: uint64 size_bytes = 2; + */ + sizeBytes: bigint; - /** - * @generated from field: int64 updated_at_unix_ms = 3; - */ - updatedAtUnixMs: bigint; + /** + * @generated from field: int64 updated_at_unix_ms = 3; + */ + updatedAtUnixMs: bigint; - /** - * @generated from field: int32 status = 4; - */ - status: number; + /** + * @generated from field: int32 status = 4; + */ + status: number; - /** - * @generated from field: uint64 bytes_uploaded = 5; - */ - bytesUploaded: bigint; + /** + * @generated from field: uint64 bytes_uploaded = 5; + */ + bytesUploaded: bigint; - /** - * @generated from field: string last_error = 6; - */ - lastError: string; + /** + * @generated from field: string last_error = 6; + */ + lastError: string; - /** - * @generated from field: uint32 upload_attempts = 7; - */ - uploadAttempts: number; + /** + * @generated from field: uint32 upload_attempts = 7; + */ + uploadAttempts: number; - /** - * @generated from field: int64 last_started_at_unix_ms = 8; - */ - lastStartedAtUnixMs: bigint; + /** + * @generated from field: int64 last_started_at_unix_ms = 8; + */ + lastStartedAtUnixMs: bigint; - /** - * @generated from field: int64 last_finished_at_unix_ms = 9; - */ - lastFinishedAtUnixMs: bigint; + /** + * @generated from field: int64 last_finished_at_unix_ms = 9; + */ + lastFinishedAtUnixMs: bigint; - /** - * @generated from field: string upload_id = 10; - */ - uploadId: string; + /** + * @generated from field: string upload_id = 10; + */ + uploadId: string; }; /** * Describes the message agent.v1.ArtifactUploadMetadata. * Use `create(ArtifactUploadMetadataSchema)` to create a new message. */ -export const ArtifactUploadMetadataSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 478); +export const ArtifactUploadMetadataSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 478); /** * @generated from message agent.v1.ListArtifactsResponse */ export type ListArtifactsResponse = Message<"agent.v1.ListArtifactsResponse"> & { - /** - * @generated from field: repeated agent.v1.ArtifactUploadMetadata artifacts = 1; - */ - artifacts: ArtifactUploadMetadata[]; + /** + * @generated from field: repeated agent.v1.ArtifactUploadMetadata artifacts = 1; + */ + artifacts: ArtifactUploadMetadata[]; }; /** * Describes the message agent.v1.ListArtifactsResponse. * Use `create(ListArtifactsResponseSchema)` to create a new message. */ -export const ListArtifactsResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 479); +export const ListArtifactsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 479); /** * @generated from message agent.v1.UploadArtifactsRequest */ export type UploadArtifactsRequest = Message<"agent.v1.UploadArtifactsRequest"> & { - /** - * @generated from field: repeated agent.v1.ArtifactUploadInstruction uploads = 1; - */ - uploads: ArtifactUploadInstruction[]; + /** + * @generated from field: repeated agent.v1.ArtifactUploadInstruction uploads = 1; + */ + uploads: ArtifactUploadInstruction[]; }; /** * Describes the message agent.v1.UploadArtifactsRequest. * Use `create(UploadArtifactsRequestSchema)` to create a new message. */ -export const UploadArtifactsRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 480); +export const UploadArtifactsRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 480); /** * @generated from message agent.v1.ArtifactUploadInstruction */ export type ArtifactUploadInstruction = Message<"agent.v1.ArtifactUploadInstruction"> & { - /** - * @generated from field: string absolute_path = 1; - */ - absolutePath: string; + /** + * @generated from field: string absolute_path = 1; + */ + absolutePath: string; - /** - * @generated from field: string upload_url = 2; - */ - uploadUrl: string; + /** + * @generated from field: string upload_url = 2; + */ + uploadUrl: string; - /** - * @generated from field: string method = 3; - */ - method: string; + /** + * @generated from field: string method = 3; + */ + method: string; - /** - * @generated from field: map headers = 4; - */ - headers: { [key: string]: string }; + /** + * @generated from field: map headers = 4; + */ + headers: { [key: string]: string }; - /** - * @generated from field: optional string content_type = 5; - */ - contentType?: string; + /** + * @generated from field: optional string content_type = 5; + */ + contentType?: string | undefined; - /** - * @generated from field: optional string slack_upload_url = 6; - */ - slackUploadUrl?: string; + /** + * @generated from field: optional string slack_upload_url = 6; + */ + slackUploadUrl?: string | undefined; - /** - * @generated from field: optional string slack_file_id = 7; - */ - slackFileId?: string; + /** + * @generated from field: optional string slack_file_id = 7; + */ + slackFileId?: string | undefined; }; /** * Describes the message agent.v1.ArtifactUploadInstruction. * Use `create(ArtifactUploadInstructionSchema)` to create a new message. */ -export const ArtifactUploadInstructionSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 481); +export const ArtifactUploadInstructionSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 481); /** * @generated from message agent.v1.ArtifactUploadDispatchResult */ export type ArtifactUploadDispatchResult = Message<"agent.v1.ArtifactUploadDispatchResult"> & { - /** - * @generated from field: string absolute_path = 1; - */ - absolutePath: string; + /** + * @generated from field: string absolute_path = 1; + */ + absolutePath: string; - /** - * @generated from field: int32 status = 2; - */ - status: number; + /** + * @generated from field: int32 status = 2; + */ + status: number; - /** - * @generated from field: string message = 3; - */ - message: string; + /** + * @generated from field: string message = 3; + */ + message: string; - /** - * @generated from field: optional string slack_file_id = 4; - */ - slackFileId?: string; + /** + * @generated from field: optional string slack_file_id = 4; + */ + slackFileId?: string | undefined; }; /** * Describes the message agent.v1.ArtifactUploadDispatchResult. * Use `create(ArtifactUploadDispatchResultSchema)` to create a new message. */ -export const ArtifactUploadDispatchResultSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 482); +export const ArtifactUploadDispatchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 482); /** * @generated from message agent.v1.UploadArtifactsResponse */ export type UploadArtifactsResponse = Message<"agent.v1.UploadArtifactsResponse"> & { - /** - * @generated from field: repeated agent.v1.ArtifactUploadDispatchResult results = 1; - */ - results: ArtifactUploadDispatchResult[]; + /** + * @generated from field: repeated agent.v1.ArtifactUploadDispatchResult results = 1; + */ + results: ArtifactUploadDispatchResult[]; }; /** * Describes the message agent.v1.UploadArtifactsResponse. * Use `create(UploadArtifactsResponseSchema)` to create a new message. */ -export const UploadArtifactsResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 483); +export const UploadArtifactsResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 483); /** * @generated from message agent.v1.GetMcpRefreshTokensRequest */ -export type GetMcpRefreshTokensRequest = Message<"agent.v1.GetMcpRefreshTokensRequest"> & {}; +export type GetMcpRefreshTokensRequest = Message<"agent.v1.GetMcpRefreshTokensRequest"> & { +}; /** * Describes the message agent.v1.GetMcpRefreshTokensRequest. * Use `create(GetMcpRefreshTokensRequestSchema)` to create a new message. */ -export const GetMcpRefreshTokensRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 484); +export const GetMcpRefreshTokensRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 484); /** * @generated from message agent.v1.GetMcpRefreshTokensResponse */ export type GetMcpRefreshTokensResponse = Message<"agent.v1.GetMcpRefreshTokensResponse"> & { - /** - * Map from server URL to refresh token - * - * @generated from field: map refresh_tokens = 1; - */ - refreshTokens: { [key: string]: string }; + /** + * Map from server URL to refresh token + * + * @generated from field: map refresh_tokens = 1; + */ + refreshTokens: { [key: string]: string }; }; /** * Describes the message agent.v1.GetMcpRefreshTokensResponse. * Use `create(GetMcpRefreshTokensResponseSchema)` to create a new message. */ -export const GetMcpRefreshTokensResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 485); +export const GetMcpRefreshTokensResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 485); /** * @generated from message agent.v1.UpdateEnvironmentVariablesRequest */ export type UpdateEnvironmentVariablesRequest = Message<"agent.v1.UpdateEnvironmentVariablesRequest"> & { - /** - * Environment variables to manage (plaintext values). - * - * @generated from field: map env = 1; - */ - env: { [key: string]: string }; + /** + * Environment variables to manage (plaintext values). + * + * @generated from field: map env = 1; + */ + env: { [key: string]: string }; - /** - * If true, unset previously-managed keys that are not present in `env`. - * - * @generated from field: bool replace = 2; - */ - replace: boolean; + /** + * If true, unset previously-managed keys that are not present in `env`. + * + * @generated from field: bool replace = 2; + */ + replace: boolean; }; /** * Describes the message agent.v1.UpdateEnvironmentVariablesRequest. * Use `create(UpdateEnvironmentVariablesRequestSchema)` to create a new message. */ -export const UpdateEnvironmentVariablesRequestSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 486); +export const UpdateEnvironmentVariablesRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 486); /** * @generated from message agent.v1.UpdateEnvironmentVariablesResponse */ export type UpdateEnvironmentVariablesResponse = Message<"agent.v1.UpdateEnvironmentVariablesResponse"> & { - /** - * @generated from field: uint32 applied = 1; - */ - applied: number; + /** + * @generated from field: uint32 applied = 1; + */ + applied: number; - /** - * @generated from field: uint32 removed = 2; - */ - removed: number; + /** + * @generated from field: uint32 removed = 2; + */ + removed: number; }; /** * Describes the message agent.v1.UpdateEnvironmentVariablesResponse. * Use `create(UpdateEnvironmentVariablesResponseSchema)` to create a new message. */ -export const UpdateEnvironmentVariablesResponseSchema: GenMessage = - /*@__PURE__*/ - messageDesc(file_agent, 487); +export const UpdateEnvironmentVariablesResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 487); /** * Check if an error is caused by the client disconnecting (e.g., due to timeout or abort). This includes errors like ERR_STREAM_DESTROYED which occur when the HTTP response stream is closed by the client while the server is still writing to it. function isClientDisconnectError(error) { if (!(error instanceof Error)) { return false; const code = error.code; return (code === "ERR_STREAM_DESTROYED" || code === "ERR_STREAM_PREMATURE_CLOSE" || code === "ECONNRESET" || code === "EPIPE"); ;// ../proto/dist/generated/aiserver/v1/mcp_pb.js // @ts-nocheck @@ -14429,633 +14864,4014 @@ export const UpdateEnvironmentVariablesResponseSchema: GenMessage & { - /** - * @generated from field: string refresh_token = 1; - */ - refreshToken: string; + /** + * @generated from field: string refresh_token = 1; + */ + refreshToken: string; - /** - * @generated from field: string client_id = 2; - */ - clientId: string; + /** + * @generated from field: string client_id = 2; + */ + clientId: string; - /** - * @generated from field: optional string client_secret = 3; - */ - clientSecret?: string; + /** + * @generated from field: optional string client_secret = 3; + */ + clientSecret?: string | undefined; - /** - * @generated from field: repeated string redirect_uris = 4; - */ - redirectUris: string[]; + /** + * @generated from field: repeated string redirect_uris = 4; + */ + redirectUris: string[]; }; /** * Describes the message agent.v1.McpOAuthStoredData. * Use `create(McpOAuthStoredDataSchema)` to create a new message. */ -export const McpOAuthStoredDataSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 488); +export const McpOAuthStoredDataSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 488); /** * @generated from message agent.v1.Frame */ export type Frame = Message<"agent.v1.Frame"> & { - /** - * Correlation ID - * - * @generated from field: string id = 1; - */ - id: string; + /** + * Correlation ID + * + * @generated from field: string id = 1; + */ + id: string; - /** - * RPC method (e.g., "/agent.v1.ControlService/Ping") - * - * @generated from field: string method = 2; - */ - method: string; + /** + * RPC method (e.g., "/agent.v1.ControlService/Ping") + * + * @generated from field: string method = 2; + */ + method: string; - /** - * Serialized payload - * - * @generated from field: bytes data = 3; - */ - data: Uint8Array; + /** + * Serialized payload + * + * @generated from field: bytes data = 3; + */ + data: Uint8Array; - /** - * @generated from field: int32 kind = 4; - */ - kind: number; + /** + * @generated from field: int32 kind = 4; + */ + kind: number; - /** - * Error message (kind == ERROR) - * - * @generated from field: string error = 5; - */ - error: string; + /** + * Error message (kind == ERROR) + * + * @generated from field: string error = 5; + */ + error: string; }; /** * Describes the message agent.v1.Frame. * Use `create(FrameSchema)` to create a new message. */ -export const FrameSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 489); +export const FrameSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 489); /** * var Frame_Kind; (function (Frame_Kind) { Frame_Kind[Frame_Kind["UNSPECIFIED"] = 0] = "UNSPECIFIED"; Frame_Kind[Frame_Kind["REQUEST"] = 1] = "REQUEST"; Frame_Kind[Frame_Kind["RESPONSE"] = 2] = "RESPONSE"; Frame_Kind[Frame_Kind["ERROR"] = 3] = "ERROR"; })(Frame_Kind || (Frame_Kind = {})); // Retrieve enum metadata with: proto3.getEnumType(Frame_Kind) proto3/* int32 *\/.C.util.setEnumType(Frame_Kind, "agent.v1.Frame.Kind", [ { no: 0, name: "KIND_UNSPECIFIED" }, { no: 1, name: "KIND_REQUEST" }, { no: 2, name: "KIND_RESPONSE" }, { no: 3, name: "KIND_ERROR" }, ]); * * @generated from message agent.v1.Empty */ -export type Empty = Message<"agent.v1.Empty"> & {}; +export type Empty = Message<"agent.v1.Empty"> & { +}; /** * Describes the message agent.v1.Empty. * Use `create(EmptySchema)` to create a new message. */ -export const EmptySchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 490); +export const EmptySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 490); /** * @generated from message agent.v1.BidiRequestId */ export type BidiRequestId = Message<"agent.v1.BidiRequestId"> & { - /** - * @generated from field: string request_id = 1; - */ - requestId: string; + /** + * @generated from field: string request_id = 1; + */ + requestId: string; }; /** * Describes the message agent.v1.BidiRequestId. * Use `create(BidiRequestIdSchema)` to create a new message. */ -export const BidiRequestIdSchema: GenMessage = /*@__PURE__*/ messageDesc(file_agent, 491); +export const BidiRequestIdSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 491); + +/** + * @generated from message agent.v1.PiTruncation + */ +export type PiTruncation = Message<"agent.v1.PiTruncation"> & { + /** + * @generated from field: bool truncated = 1; + */ + truncated: boolean; + + /** + * @generated from field: string truncated_by = 2; + */ + truncatedBy: string; + + /** + * @generated from field: uint32 total_lines = 3; + */ + totalLines: number; + + /** + * @generated from field: uint32 output_lines = 4; + */ + outputLines: number; + + /** + * @generated from field: uint32 output_bytes = 5; + */ + outputBytes: number; + + /** + * @generated from field: optional uint32 max_lines = 6; + */ + maxLines?: number | undefined; + + /** + * @generated from field: optional uint32 max_bytes = 7; + */ + maxBytes?: number | undefined; + + /** + * @generated from field: bool first_line_exceeds_limit = 8; + */ + firstLineExceedsLimit: boolean; + + /** + * @generated from field: bool last_line_partial = 9; + */ + lastLinePartial: boolean; +}; + +/** + * Describes the message agent.v1.PiTruncation. + * Use `create(PiTruncationSchema)` to create a new message. + */ +export const PiTruncationSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 492); + +/** + * @generated from message agent.v1.PiEditReplacement + */ +export type PiEditReplacement = Message<"agent.v1.PiEditReplacement"> & { + /** + * @generated from field: string old_text = 1; + */ + oldText: string; + + /** + * @generated from field: string new_text = 2; + */ + newText: string; +}; + +/** + * Describes the message agent.v1.PiEditReplacement. + * Use `create(PiEditReplacementSchema)` to create a new message. + */ +export const PiEditReplacementSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 493); + +/** + * @generated from message agent.v1.PiReadExecArgs + */ +export type PiReadExecArgs = Message<"agent.v1.PiReadExecArgs"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: optional int32 offset = 2; + */ + offset?: number | undefined; + + /** + * @generated from field: optional int32 limit = 3; + */ + limit?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiReadExecArgs. + * Use `create(PiReadExecArgsSchema)` to create a new message. + */ +export const PiReadExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 494); + +/** + * @generated from message agent.v1.PiReadExecSuccess + */ +export type PiReadExecSuccess = Message<"agent.v1.PiReadExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; +}; + +/** + * Describes the message agent.v1.PiReadExecSuccess. + * Use `create(PiReadExecSuccessSchema)` to create a new message. + */ +export const PiReadExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 495); + +/** + * @generated from message agent.v1.PiReadExecError + */ +export type PiReadExecError = Message<"agent.v1.PiReadExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiReadExecError. + * Use `create(PiReadExecErrorSchema)` to create a new message. + */ +export const PiReadExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 496); + +/** + * @generated from message agent.v1.PiReadExecResult + */ +export type PiReadExecResult = Message<"agent.v1.PiReadExecResult"> & { + /** + * @generated from oneof agent.v1.PiReadExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiReadExecSuccess success = 1; + */ + value: PiReadExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiReadExecError error = 2; + */ + value: PiReadExecError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiReadExecResult. + * Use `create(PiReadExecResultSchema)` to create a new message. + */ +export const PiReadExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 497); + +/** + * @generated from message agent.v1.PiBashExecArgs + */ +export type PiBashExecArgs = Message<"agent.v1.PiBashExecArgs"> & { + /** + * @generated from field: string command = 1; + */ + command: string; + + /** + * @generated from field: optional double timeout = 2; + */ + timeout?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiBashExecArgs. + * Use `create(PiBashExecArgsSchema)` to create a new message. + */ +export const PiBashExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 498); + +/** + * @generated from message agent.v1.PiBashExecSuccess + */ +export type PiBashExecSuccess = Message<"agent.v1.PiBashExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; + + /** + * @generated from field: optional string full_output_path = 3; + */ + fullOutputPath?: string | undefined; +}; + +/** + * Describes the message agent.v1.PiBashExecSuccess. + * Use `create(PiBashExecSuccessSchema)` to create a new message. + */ +export const PiBashExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 499); + +/** + * @generated from message agent.v1.PiBashExecError + */ +export type PiBashExecError = Message<"agent.v1.PiBashExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; + + /** + * @generated from field: optional string full_output_path = 3; + */ + fullOutputPath?: string | undefined; +}; + +/** + * Describes the message agent.v1.PiBashExecError. + * Use `create(PiBashExecErrorSchema)` to create a new message. + */ +export const PiBashExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 500); + +/** + * @generated from message agent.v1.PiBashExecResult + */ +export type PiBashExecResult = Message<"agent.v1.PiBashExecResult"> & { + /** + * @generated from oneof agent.v1.PiBashExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiBashExecSuccess success = 1; + */ + value: PiBashExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiBashExecError error = 2; + */ + value: PiBashExecError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiBashExecResult. + * Use `create(PiBashExecResultSchema)` to create a new message. + */ +export const PiBashExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 501); + +/** + * @generated from message agent.v1.PiEditExecArgs + */ +export type PiEditExecArgs = Message<"agent.v1.PiEditExecArgs"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: repeated agent.v1.PiEditReplacement edits = 2; + */ + edits: PiEditReplacement[]; +}; + +/** + * Describes the message agent.v1.PiEditExecArgs. + * Use `create(PiEditExecArgsSchema)` to create a new message. + */ +export const PiEditExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 502); + +/** + * @generated from message agent.v1.PiEditExecSuccess + */ +export type PiEditExecSuccess = Message<"agent.v1.PiEditExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: string diff = 2; + */ + diff: string; + + /** + * @generated from field: string patch = 3; + */ + patch: string; + + /** + * @generated from field: optional uint32 first_changed_line = 4; + */ + firstChangedLine?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiEditExecSuccess. + * Use `create(PiEditExecSuccessSchema)` to create a new message. + */ +export const PiEditExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 503); + +/** + * @generated from message agent.v1.PiEditExecError + */ +export type PiEditExecError = Message<"agent.v1.PiEditExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiEditExecError. + * Use `create(PiEditExecErrorSchema)` to create a new message. + */ +export const PiEditExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 504); + +/** + * @generated from message agent.v1.PiEditExecRejected + */ +export type PiEditExecRejected = Message<"agent.v1.PiEditExecRejected"> & { + /** + * @generated from field: string reason = 1; + */ + reason: string; +}; + +/** + * Describes the message agent.v1.PiEditExecRejected. + * Use `create(PiEditExecRejectedSchema)` to create a new message. + */ +export const PiEditExecRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 505); + +/** + * @generated from message agent.v1.PiEditExecResult + */ +export type PiEditExecResult = Message<"agent.v1.PiEditExecResult"> & { + /** + * @generated from oneof agent.v1.PiEditExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiEditExecSuccess success = 1; + */ + value: PiEditExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiEditExecError error = 2; + */ + value: PiEditExecError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.PiEditExecRejected rejected = 3; + */ + value: PiEditExecRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiEditExecResult. + * Use `create(PiEditExecResultSchema)` to create a new message. + */ +export const PiEditExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 506); + +/** + * @generated from message agent.v1.PiWriteExecArgs + */ +export type PiWriteExecArgs = Message<"agent.v1.PiWriteExecArgs"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: string content = 2; + */ + content: string; +}; + +/** + * Describes the message agent.v1.PiWriteExecArgs. + * Use `create(PiWriteExecArgsSchema)` to create a new message. + */ +export const PiWriteExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 507); + +/** + * @generated from message agent.v1.PiWriteExecSuccess + */ +export type PiWriteExecSuccess = Message<"agent.v1.PiWriteExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; +}; + +/** + * Describes the message agent.v1.PiWriteExecSuccess. + * Use `create(PiWriteExecSuccessSchema)` to create a new message. + */ +export const PiWriteExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 508); + +/** + * @generated from message agent.v1.PiWriteExecError + */ +export type PiWriteExecError = Message<"agent.v1.PiWriteExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiWriteExecError. + * Use `create(PiWriteExecErrorSchema)` to create a new message. + */ +export const PiWriteExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 509); + +/** + * @generated from message agent.v1.PiWriteExecRejected + */ +export type PiWriteExecRejected = Message<"agent.v1.PiWriteExecRejected"> & { + /** + * @generated from field: string reason = 1; + */ + reason: string; +}; + +/** + * Describes the message agent.v1.PiWriteExecRejected. + * Use `create(PiWriteExecRejectedSchema)` to create a new message. + */ +export const PiWriteExecRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 510); + +/** + * @generated from message agent.v1.PiWriteExecResult + */ +export type PiWriteExecResult = Message<"agent.v1.PiWriteExecResult"> & { + /** + * @generated from oneof agent.v1.PiWriteExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiWriteExecSuccess success = 1; + */ + value: PiWriteExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiWriteExecError error = 2; + */ + value: PiWriteExecError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.PiWriteExecRejected rejected = 3; + */ + value: PiWriteExecRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiWriteExecResult. + * Use `create(PiWriteExecResultSchema)` to create a new message. + */ +export const PiWriteExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 511); + +/** + * @generated from message agent.v1.PiGrepExecArgs + */ +export type PiGrepExecArgs = Message<"agent.v1.PiGrepExecArgs"> & { + /** + * @generated from field: string pattern = 1; + */ + pattern: string; + + /** + * @generated from field: optional string path = 2; + */ + path?: string | undefined; + + /** + * @generated from field: optional string glob = 3; + */ + glob?: string | undefined; + + /** + * @generated from field: optional bool ignore_case = 4; + */ + ignoreCase?: boolean | undefined; + + /** + * @generated from field: optional bool literal = 5; + */ + literal?: boolean | undefined; + + /** + * @generated from field: optional int32 context = 6; + */ + context?: number | undefined; + + /** + * @generated from field: optional int32 limit = 7; + */ + limit?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiGrepExecArgs. + * Use `create(PiGrepExecArgsSchema)` to create a new message. + */ +export const PiGrepExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 512); + +/** + * @generated from message agent.v1.PiGrepExecSuccess + */ +export type PiGrepExecSuccess = Message<"agent.v1.PiGrepExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; + + /** + * @generated from field: optional uint32 match_limit_reached = 3; + */ + matchLimitReached?: number | undefined; + + /** + * @generated from field: bool lines_truncated = 4; + */ + linesTruncated: boolean; +}; + +/** + * Describes the message agent.v1.PiGrepExecSuccess. + * Use `create(PiGrepExecSuccessSchema)` to create a new message. + */ +export const PiGrepExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 513); + +/** + * @generated from message agent.v1.PiGrepExecError + */ +export type PiGrepExecError = Message<"agent.v1.PiGrepExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiGrepExecError. + * Use `create(PiGrepExecErrorSchema)` to create a new message. + */ +export const PiGrepExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 514); + +/** + * @generated from message agent.v1.PiGrepExecResult + */ +export type PiGrepExecResult = Message<"agent.v1.PiGrepExecResult"> & { + /** + * @generated from oneof agent.v1.PiGrepExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiGrepExecSuccess success = 1; + */ + value: PiGrepExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiGrepExecError error = 2; + */ + value: PiGrepExecError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiGrepExecResult. + * Use `create(PiGrepExecResultSchema)` to create a new message. + */ +export const PiGrepExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 515); + +/** + * @generated from message agent.v1.PiFindExecArgs + */ +export type PiFindExecArgs = Message<"agent.v1.PiFindExecArgs"> & { + /** + * @generated from field: string pattern = 1; + */ + pattern: string; + + /** + * @generated from field: optional string path = 2; + */ + path?: string | undefined; + + /** + * @generated from field: optional int32 limit = 3; + */ + limit?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiFindExecArgs. + * Use `create(PiFindExecArgsSchema)` to create a new message. + */ +export const PiFindExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 516); + +/** + * @generated from message agent.v1.PiFindExecSuccess + */ +export type PiFindExecSuccess = Message<"agent.v1.PiFindExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; + + /** + * @generated from field: optional uint32 result_limit_reached = 3; + */ + resultLimitReached?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiFindExecSuccess. + * Use `create(PiFindExecSuccessSchema)` to create a new message. + */ +export const PiFindExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 517); + +/** + * @generated from message agent.v1.PiFindExecError + */ +export type PiFindExecError = Message<"agent.v1.PiFindExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiFindExecError. + * Use `create(PiFindExecErrorSchema)` to create a new message. + */ +export const PiFindExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 518); + +/** + * @generated from message agent.v1.PiFindExecResult + */ +export type PiFindExecResult = Message<"agent.v1.PiFindExecResult"> & { + /** + * @generated from oneof agent.v1.PiFindExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiFindExecSuccess success = 1; + */ + value: PiFindExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiFindExecError error = 2; + */ + value: PiFindExecError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiFindExecResult. + * Use `create(PiFindExecResultSchema)` to create a new message. + */ +export const PiFindExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 519); + +/** + * @generated from message agent.v1.PiLsExecArgs + */ +export type PiLsExecArgs = Message<"agent.v1.PiLsExecArgs"> & { + /** + * @generated from field: optional string path = 1; + */ + path?: string | undefined; + + /** + * @generated from field: optional int32 limit = 2; + */ + limit?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiLsExecArgs. + * Use `create(PiLsExecArgsSchema)` to create a new message. + */ +export const PiLsExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 520); + +/** + * @generated from message agent.v1.PiLsExecSuccess + */ +export type PiLsExecSuccess = Message<"agent.v1.PiLsExecSuccess"> & { + /** + * @generated from field: string output = 1; + */ + output: string; + + /** + * @generated from field: optional agent.v1.PiTruncation truncation = 2; + */ + truncation?: PiTruncation | undefined; + + /** + * @generated from field: optional uint32 entry_limit_reached = 3; + */ + entryLimitReached?: number | undefined; +}; + +/** + * Describes the message agent.v1.PiLsExecSuccess. + * Use `create(PiLsExecSuccessSchema)` to create a new message. + */ +export const PiLsExecSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 521); + +/** + * @generated from message agent.v1.PiLsExecError + */ +export type PiLsExecError = Message<"agent.v1.PiLsExecError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.PiLsExecError. + * Use `create(PiLsExecErrorSchema)` to create a new message. + */ +export const PiLsExecErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 522); + +/** + * @generated from message agent.v1.PiLsExecResult + */ +export type PiLsExecResult = Message<"agent.v1.PiLsExecResult"> & { + /** + * @generated from oneof agent.v1.PiLsExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.PiLsExecSuccess success = 1; + */ + value: PiLsExecSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.PiLsExecError error = 2; + */ + value: PiLsExecError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.PiLsExecResult. + * Use `create(PiLsExecResultSchema)` to create a new message. + */ +export const PiLsExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 523); + +/** + * @generated from message agent.v1.McpServerNotFound + */ +export type McpServerNotFound = Message<"agent.v1.McpServerNotFound"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: repeated string available_servers = 2; + */ + availableServers: string[]; +}; + +/** + * Describes the message agent.v1.McpServerNotFound. + * Use `create(McpServerNotFoundSchema)` to create a new message. + */ +export const McpServerNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 524); + +/** + * @generated from message agent.v1.McpApproved + */ +export type McpApproved = Message<"agent.v1.McpApproved"> & { +}; + +/** + * Describes the message agent.v1.McpApproved. + * Use `create(McpApprovedSchema)` to create a new message. + */ +export const McpApprovedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 525); + +/** + * @generated from message agent.v1.McpStateExecArgs + */ +export type McpStateExecArgs = Message<"agent.v1.McpStateExecArgs"> & { + /** + * @generated from field: repeated string server_identifiers = 1; + */ + serverIdentifiers: string[]; + + /** + * @generated from field: bool kick_only = 2; + */ + kickOnly: boolean; +}; + +/** + * Describes the message agent.v1.McpStateExecArgs. + * Use `create(McpStateExecArgsSchema)` to create a new message. + */ +export const McpStateExecArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 526); + +/** + * @generated from message agent.v1.McpStateServer + */ +export type McpStateServer = Message<"agent.v1.McpStateServer"> & { + /** + * @generated from field: string server_name = 1; + */ + serverName: string; + + /** + * @generated from field: string server_identifier = 2; + */ + serverIdentifier: string; + + /** + * @generated from field: optional string plugin = 3; + */ + plugin?: string | undefined; + + /** + * @generated from field: optional string marketplace = 4; + */ + marketplace?: string | undefined; + + /** + * @generated from field: repeated agent.v1.McpToolDefinition tools = 5; + */ + tools: McpToolDefinition[]; + + /** + * @generated from field: repeated agent.v1.McpInstructions instructions = 6; + */ + instructions: McpInstructions[]; + + /** + * @generated from field: optional string status = 7; + */ + status?: string | undefined; +}; + +/** + * Describes the message agent.v1.McpStateServer. + * Use `create(McpStateServerSchema)` to create a new message. + */ +export const McpStateServerSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 527); + +/** + * @generated from message agent.v1.McpStateSuccess + */ +export type McpStateSuccess = Message<"agent.v1.McpStateSuccess"> & { + /** + * @generated from field: repeated agent.v1.McpStateServer servers = 1; + */ + servers: McpStateServer[]; +}; + +/** + * Describes the message agent.v1.McpStateSuccess. + * Use `create(McpStateSuccessSchema)` to create a new message. + */ +export const McpStateSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 528); + +/** + * @generated from message agent.v1.McpStateError + */ +export type McpStateError = Message<"agent.v1.McpStateError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.McpStateError. + * Use `create(McpStateErrorSchema)` to create a new message. + */ +export const McpStateErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 529); + +/** + * @generated from message agent.v1.McpStateRejected + */ +export type McpStateRejected = Message<"agent.v1.McpStateRejected"> & { + /** + * @generated from field: string reason = 1; + */ + reason: string; +}; + +/** + * Describes the message agent.v1.McpStateRejected. + * Use `create(McpStateRejectedSchema)` to create a new message. + */ +export const McpStateRejectedSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 530); + +/** + * @generated from message agent.v1.McpStateExecResult + */ +export type McpStateExecResult = Message<"agent.v1.McpStateExecResult"> & { + /** + * @generated from oneof agent.v1.McpStateExecResult.result + */ + result: { + /** + * @generated from field: agent.v1.McpStateSuccess success = 1; + */ + value: McpStateSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.McpStateError error = 2; + */ + value: McpStateError; + case: "error"; + } | { + /** + * @generated from field: agent.v1.McpStateRejected rejected = 3; + */ + value: McpStateRejected; + case: "rejected"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.McpStateExecResult. + * Use `create(McpStateExecResultSchema)` to create a new message. + */ +export const McpStateExecResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 531); + +/** + * @generated from message agent.v1.CommandClassifierResult_ClassifiedCommand + */ +export type CommandClassifierResult_ClassifiedCommand = Message<"agent.v1.CommandClassifierResult_ClassifiedCommand"> & { + /** + * @generated from field: string name = 1; + */ + name: string; + + /** + * @generated from field: repeated string arguments = 2; + */ + arguments: string[]; + + /** + * @generated from field: optional string suggested_allowlist_entry = 3; + */ + suggestedAllowlistEntry?: string | undefined; + + /** + * @generated from field: repeated string subcommand_tokens = 4; + */ + subcommandTokens: string[]; +}; + +/** + * Describes the message agent.v1.CommandClassifierResult_ClassifiedCommand. + * Use `create(CommandClassifierResult_ClassifiedCommandSchema)` to create a new message. + */ +export const CommandClassifierResult_ClassifiedCommandSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 532); + +/** + * @generated from message agent.v1.CommandClassifierResult + */ +export type CommandClassifierResult = Message<"agent.v1.CommandClassifierResult"> & { + /** + * @generated from field: repeated agent.v1.CommandClassifierResult_ClassifiedCommand commands = 1; + */ + commands: CommandClassifierResult_ClassifiedCommand[]; + + /** + * @generated from field: agent.v1.CommandClassifierResult_SuggestedSandboxMode suggested_sandbox_mode = 2; + */ + suggestedSandboxMode: CommandClassifierResult_SuggestedSandboxMode; + + /** + * @generated from field: bool classification_failed = 3; + */ + classificationFailed: boolean; +}; + +/** + * Describes the message agent.v1.CommandClassifierResult. + * Use `create(CommandClassifierResultSchema)` to create a new message. + */ +export const CommandClassifierResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 533); + +/** + * @generated from message agent.v1.ShellCommandParsingResult_Redirect + */ +export type ShellCommandParsingResult_Redirect = Message<"agent.v1.ShellCommandParsingResult_Redirect"> & { + /** + * @generated from field: string operator = 1; + */ + operator: string; + + /** + * @generated from field: repeated uint32 destination_fds = 2; + */ + destinationFds: number[]; + + /** + * @generated from field: string target_node_type = 3; + */ + targetNodeType: string; + + /** + * @generated from field: optional string target_text = 4; + */ + targetText?: string | undefined; +}; + +/** + * Describes the message agent.v1.ShellCommandParsingResult_Redirect. + * Use `create(ShellCommandParsingResult_RedirectSchema)` to create a new message. + */ +export const ShellCommandParsingResult_RedirectSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 534); + +/** + * @generated from message agent.v1.ShellAllowlistPrecheckArgs + */ +export type ShellAllowlistPrecheckArgs = Message<"agent.v1.ShellAllowlistPrecheckArgs"> & { + /** + * @generated from field: string command = 1; + */ + command: string; + + /** + * @generated from field: string working_directory = 2; + */ + workingDirectory: string; + + /** + * @generated from field: agent.v1.ShellCommandParsingResult parsing_result = 3; + */ + parsingResult?: ShellCommandParsingResult | undefined; + + /** + * @generated from field: optional agent.v1.CommandClassifierResult classifier_result = 4; + */ + classifierResult?: CommandClassifierResult | undefined; + + /** + * @generated from field: optional string tool_call_id = 5; + */ + toolCallId?: string | undefined; +}; + +/** + * Describes the message agent.v1.ShellAllowlistPrecheckArgs. + * Use `create(ShellAllowlistPrecheckArgsSchema)` to create a new message. + */ +export const ShellAllowlistPrecheckArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 535); + +/** + * @generated from message agent.v1.ShellAllowlistPrecheckResult + */ +export type ShellAllowlistPrecheckResult = Message<"agent.v1.ShellAllowlistPrecheckResult"> & { + /** + * @generated from field: bool allowlisted = 1; + */ + allowlisted: boolean; +}; + +/** + * Describes the message agent.v1.ShellAllowlistPrecheckResult. + * Use `create(ShellAllowlistPrecheckResultSchema)` to create a new message. + */ +export const ShellAllowlistPrecheckResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 536); + +/** + * @generated from message agent.v1.McpAllowlistPrecheckArgs + */ +export type McpAllowlistPrecheckArgs = Message<"agent.v1.McpAllowlistPrecheckArgs"> & { + /** + * @generated from field: string provider_identifier = 1; + */ + providerIdentifier: string; + + /** + * @generated from field: string tool_name = 2; + */ + toolName: string; + + /** + * @generated from field: optional string tool_call_id = 3; + */ + toolCallId?: string | undefined; +}; + +/** + * Describes the message agent.v1.McpAllowlistPrecheckArgs. + * Use `create(McpAllowlistPrecheckArgsSchema)` to create a new message. + */ +export const McpAllowlistPrecheckArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 537); + +/** + * @generated from message agent.v1.McpAllowlistPrecheckResult + */ +export type McpAllowlistPrecheckResult = Message<"agent.v1.McpAllowlistPrecheckResult"> & { + /** + * @generated from field: bool allowlisted = 1; + */ + allowlisted: boolean; +}; + +/** + * Describes the message agent.v1.McpAllowlistPrecheckResult. + * Use `create(McpAllowlistPrecheckResultSchema)` to create a new message. + */ +export const McpAllowlistPrecheckResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 538); + +/** + * @generated from message agent.v1.WebFetchAllowlistPrecheckArgs + */ +export type WebFetchAllowlistPrecheckArgs = Message<"agent.v1.WebFetchAllowlistPrecheckArgs"> & { + /** + * @generated from field: string url = 1; + */ + url: string; + + /** + * @generated from field: optional string tool_call_id = 2; + */ + toolCallId?: string | undefined; +}; + +/** + * Describes the message agent.v1.WebFetchAllowlistPrecheckArgs. + * Use `create(WebFetchAllowlistPrecheckArgsSchema)` to create a new message. + */ +export const WebFetchAllowlistPrecheckArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 539); + +/** + * @generated from message agent.v1.WebFetchAllowlistPrecheckResult + */ +export type WebFetchAllowlistPrecheckResult = Message<"agent.v1.WebFetchAllowlistPrecheckResult"> & { + /** + * @generated from field: bool allowlisted = 1; + */ + allowlisted: boolean; +}; + +/** + * Describes the message agent.v1.WebFetchAllowlistPrecheckResult. + * Use `create(WebFetchAllowlistPrecheckResultSchema)` to create a new message. + */ +export const WebFetchAllowlistPrecheckResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 540); + +/** + * @generated from message agent.v1.SmartModeApproval + */ +export type SmartModeApproval = Message<"agent.v1.SmartModeApproval"> & { + /** + * @generated from field: string request_id = 1; + */ + requestId: string; + + /** + * @generated from field: string reason = 2; + */ + reason: string; +}; + +/** + * Describes the message agent.v1.SmartModeApproval. + * Use `create(SmartModeApprovalSchema)` to create a new message. + */ +export const SmartModeApprovalSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 541); + +/** + * @generated from message agent.v1.ShellOutputNotificationConfig + */ +export type ShellOutputNotificationConfig = Message<"agent.v1.ShellOutputNotificationConfig"> & { + /** + * @generated from field: string pattern = 1; + */ + pattern: string; + + /** + * @generated from field: string reason = 2; + */ + reason: string; + + /** + * @generated from field: optional double debounce = 3; + */ + debounce?: number | undefined; + + /** + * @generated from field: optional int32 notification_limit = 4; + */ + notificationLimit?: number | undefined; +}; + +/** + * Describes the message agent.v1.ShellOutputNotificationConfig. + * Use `create(ShellOutputNotificationConfigSchema)` to create a new message. + */ +export const ShellOutputNotificationConfigSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 542); + +/** + * @generated from message agent.v1.ShellHookApprovalRequirement + */ +export type ShellHookApprovalRequirement = Message<"agent.v1.ShellHookApprovalRequirement"> & { + /** + * @generated from field: agent.v1.ShellHookApprovalRequirement_Kind kind = 1; + */ + kind: ShellHookApprovalRequirement_Kind; + + /** + * @generated from field: optional string reason = 2; + */ + reason?: string | undefined; +}; + +/** + * Describes the message agent.v1.ShellHookApprovalRequirement. + * Use `create(ShellHookApprovalRequirementSchema)` to create a new message. + */ +export const ShellHookApprovalRequirementSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 543); + +/** + * @generated from message agent.v1.ForceBackgroundShellArgs + */ +export type ForceBackgroundShellArgs = Message<"agent.v1.ForceBackgroundShellArgs"> & { + /** + * @generated from field: string tool_call_id = 1; + */ + toolCallId: string; +}; + +/** + * Describes the message agent.v1.ForceBackgroundShellArgs. + * Use `create(ForceBackgroundShellArgsSchema)` to create a new message. + */ +export const ForceBackgroundShellArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 544); + +/** + * @generated from message agent.v1.ForceBackgroundShellResult + */ +export type ForceBackgroundShellResult = Message<"agent.v1.ForceBackgroundShellResult"> & { + /** + * @generated from field: agent.v1.ForceBackgroundShellStatus status = 1; + */ + status: ForceBackgroundShellStatus; + + /** + * @generated from field: optional agent.v1.ShellResult shell_result = 2; + */ + shellResult?: ShellResult | undefined; +}; + +/** + * Describes the message agent.v1.ForceBackgroundShellResult. + * Use `create(ForceBackgroundShellResultSchema)` to create a new message. + */ +export const ForceBackgroundShellResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 545); + +/** + * @generated from message agent.v1.HookAdditionalContext + */ +export type HookAdditionalContext = Message<"agent.v1.HookAdditionalContext"> & { + /** + * @generated from field: string hook_event_name = 1; + */ + hookEventName: string; + + /** + * @generated from field: string content = 2; + */ + content: string; +}; + +/** + * Describes the message agent.v1.HookAdditionalContext. + * Use `create(HookAdditionalContextSchema)` to create a new message. + */ +export const HookAdditionalContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 546); + +/** + * @generated from message agent.v1.ShellStreamHookContext + */ +export type ShellStreamHookContext = Message<"agent.v1.ShellStreamHookContext"> & { + /** + * @generated from field: repeated agent.v1.HookAdditionalContext hook_additional_contexts = 1; + */ + hookAdditionalContexts: HookAdditionalContext[]; +}; + +/** + * Describes the message agent.v1.ShellStreamHookContext. + * Use `create(ShellStreamHookContextSchema)` to create a new message. + */ +export const ShellStreamHookContextSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 547); + +/** + * Subset: only the fields this client reads. Upstream also defines model_id=3, readonly=5, + * resume_agent_id=6, run_in_background=7, continuation_config=8, parent_conversation_id=9, + * credentials 10-12, interrupt=13, mode=14, fork_agent_id=15, root_parent_conversation_id=16, + * selected_context=17, direct_meta_parent_child_subagent=18, environment=19, cloud_base_branch=20. + * Those decode into unknown fields; do not reuse these numbers. + * + * @generated from message agent.v1.SubagentArgs + */ +export type SubagentArgs = Message<"agent.v1.SubagentArgs"> & { + /** + * @generated from field: string tool_call_id = 1; + */ + toolCallId: string; + + /** + * @generated from field: string subagent_type = 2; + */ + subagentType: string; + + /** + * @generated from field: string prompt = 4; + */ + prompt: string; +}; + +/** + * Describes the message agent.v1.SubagentArgs. + * Use `create(SubagentArgsSchema)` to create a new message. + */ +export const SubagentArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 548); + +/** + * @generated from message agent.v1.SubagentSuccess + */ +export type SubagentSuccess = Message<"agent.v1.SubagentSuccess"> & { + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; + + /** + * @generated from field: optional string final_message = 2; + */ + finalMessage?: string | undefined; + + /** + * @generated from field: int32 tool_call_count = 3; + */ + toolCallCount: number; + + /** + * @generated from field: agent.v1.SubagentBackgroundReason background_reason = 4; + */ + backgroundReason: SubagentBackgroundReason; + + /** + * @generated from field: optional string transcript_path = 5; + */ + transcriptPath?: string | undefined; +}; + +/** + * Describes the message agent.v1.SubagentSuccess. + * Use `create(SubagentSuccessSchema)` to create a new message. + */ +export const SubagentSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 549); + +/** + * @generated from message agent.v1.SubagentError + */ +export type SubagentError = Message<"agent.v1.SubagentError"> & { + /** + * @generated from field: optional string agent_id = 1; + */ + agentId?: string | undefined; + + /** + * @generated from field: string error = 2; + */ + error: string; +}; + +/** + * Describes the message agent.v1.SubagentError. + * Use `create(SubagentErrorSchema)` to create a new message. + */ +export const SubagentErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 550); + +/** + * @generated from message agent.v1.SubagentResult + */ +export type SubagentResult = Message<"agent.v1.SubagentResult"> & { + /** + * @generated from oneof agent.v1.SubagentResult.result + */ + result: { + /** + * @generated from field: agent.v1.SubagentSuccess success = 1; + */ + value: SubagentSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.SubagentError error = 2; + */ + value: SubagentError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.SubagentResult. + * Use `create(SubagentResultSchema)` to create a new message. + */ +export const SubagentResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 551); + +/** + * @generated from message agent.v1.SubagentAwaitArgs + */ +export type SubagentAwaitArgs = Message<"agent.v1.SubagentAwaitArgs"> & { + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; + + /** + * @generated from field: uint32 timeout_ms = 2; + */ + timeoutMs: number; +}; + +/** + * Describes the message agent.v1.SubagentAwaitArgs. + * Use `create(SubagentAwaitArgsSchema)` to create a new message. + */ +export const SubagentAwaitArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 552); + +/** + * @generated from message agent.v1.SubagentAwaitComplete + */ +export type SubagentAwaitComplete = Message<"agent.v1.SubagentAwaitComplete"> & { + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; + + /** + * @generated from field: optional string transcript_path = 2; + */ + transcriptPath?: string | undefined; + + /** + * @generated from field: int32 tool_call_count = 3; + */ + toolCallCount: number; + + /** + * @generated from field: optional string final_message = 4; + */ + finalMessage?: string | undefined; +}; + +/** + * Describes the message agent.v1.SubagentAwaitComplete. + * Use `create(SubagentAwaitCompleteSchema)` to create a new message. + */ +export const SubagentAwaitCompleteSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 553); + +/** + * @generated from message agent.v1.SubagentAwaitStillRunning + */ +export type SubagentAwaitStillRunning = Message<"agent.v1.SubagentAwaitStillRunning"> & { + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; + + /** + * @generated from field: optional string transcript_path = 2; + */ + transcriptPath?: string | undefined; +}; + +/** + * Describes the message agent.v1.SubagentAwaitStillRunning. + * Use `create(SubagentAwaitStillRunningSchema)` to create a new message. + */ +export const SubagentAwaitStillRunningSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 554); + +/** + * @generated from message agent.v1.SubagentAwaitNotFound + */ +export type SubagentAwaitNotFound = Message<"agent.v1.SubagentAwaitNotFound"> & { + /** + * @generated from field: string agent_id = 1; + */ + agentId: string; +}; + +/** + * Describes the message agent.v1.SubagentAwaitNotFound. + * Use `create(SubagentAwaitNotFoundSchema)` to create a new message. + */ +export const SubagentAwaitNotFoundSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 555); + +/** + * @generated from message agent.v1.SubagentAwaitError + */ +export type SubagentAwaitError = Message<"agent.v1.SubagentAwaitError"> & { + /** + * @generated from field: optional string agent_id = 1; + */ + agentId?: string | undefined; + + /** + * @generated from field: string error = 2; + */ + error: string; +}; + +/** + * Describes the message agent.v1.SubagentAwaitError. + * Use `create(SubagentAwaitErrorSchema)` to create a new message. + */ +export const SubagentAwaitErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 556); + +/** + * @generated from message agent.v1.SubagentAwaitResult + */ +export type SubagentAwaitResult = Message<"agent.v1.SubagentAwaitResult"> & { + /** + * @generated from oneof agent.v1.SubagentAwaitResult.result + */ + result: { + /** + * @generated from field: agent.v1.SubagentAwaitComplete complete = 1; + */ + value: SubagentAwaitComplete; + case: "complete"; + } | { + /** + * @generated from field: agent.v1.SubagentAwaitStillRunning still_running = 2; + */ + value: SubagentAwaitStillRunning; + case: "stillRunning"; + } | { + /** + * @generated from field: agent.v1.SubagentAwaitNotFound not_found = 3; + */ + value: SubagentAwaitNotFound; + case: "notFound"; + } | { + /** + * @generated from field: agent.v1.SubagentAwaitError error = 4; + */ + value: SubagentAwaitError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.SubagentAwaitResult. + * Use `create(SubagentAwaitResultSchema)` to create a new message. + */ +export const SubagentAwaitResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 557); + +/** + * @generated from message agent.v1.ForceBackgroundSubagentArgs + */ +export type ForceBackgroundSubagentArgs = Message<"agent.v1.ForceBackgroundSubagentArgs"> & { + /** + * @generated from field: string tool_call_id = 1; + */ + toolCallId: string; +}; + +/** + * Describes the message agent.v1.ForceBackgroundSubagentArgs. + * Use `create(ForceBackgroundSubagentArgsSchema)` to create a new message. + */ +export const ForceBackgroundSubagentArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 558); + +/** + * @generated from message agent.v1.ForceBackgroundSubagentResult + */ +export type ForceBackgroundSubagentResult = Message<"agent.v1.ForceBackgroundSubagentResult"> & { + /** + * @generated from field: agent.v1.ForceBackgroundSubagentStatus status = 1; + */ + status: ForceBackgroundSubagentStatus; +}; + +/** + * Describes the message agent.v1.ForceBackgroundSubagentResult. + * Use `create(ForceBackgroundSubagentResultSchema)` to create a new message. + */ +export const ForceBackgroundSubagentResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 559); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.PreCompactRequestQuery + */ +export type PreCompactRequestQuery = Message<"agent.v1.PreCompactRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.PreCompactRequestQuery. + * Use `create(PreCompactRequestQuerySchema)` to create a new message. + */ +export const PreCompactRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 560); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.SubagentStartRequestQuery + */ +export type SubagentStartRequestQuery = Message<"agent.v1.SubagentStartRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.SubagentStartRequestQuery. + * Use `create(SubagentStartRequestQuerySchema)` to create a new message. + */ +export const SubagentStartRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 561); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.SubagentStopRequestQuery + */ +export type SubagentStopRequestQuery = Message<"agent.v1.SubagentStopRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.SubagentStopRequestQuery. + * Use `create(SubagentStopRequestQuerySchema)` to create a new message. + */ +export const SubagentStopRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 562); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.PreToolUseRequestQuery + */ +export type PreToolUseRequestQuery = Message<"agent.v1.PreToolUseRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.PreToolUseRequestQuery. + * Use `create(PreToolUseRequestQuerySchema)` to create a new message. + */ +export const PreToolUseRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 563); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.PostToolUseRequestQuery + */ +export type PostToolUseRequestQuery = Message<"agent.v1.PostToolUseRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.PostToolUseRequestQuery. + * Use `create(PostToolUseRequestQuerySchema)` to create a new message. + */ +export const PostToolUseRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 564); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.PostToolUseFailureRequestQuery + */ +export type PostToolUseFailureRequestQuery = Message<"agent.v1.PostToolUseFailureRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.PostToolUseFailureRequestQuery. + * Use `create(PostToolUseFailureRequestQuerySchema)` to create a new message. + */ +export const PostToolUseFailureRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 565); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.BeforeSubmitPromptRequestQuery + */ +export type BeforeSubmitPromptRequestQuery = Message<"agent.v1.BeforeSubmitPromptRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.BeforeSubmitPromptRequestQuery. + * Use `create(BeforeSubmitPromptRequestQuerySchema)` to create a new message. + */ +export const BeforeSubmitPromptRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 566); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.AfterAgentResponseRequestQuery + */ +export type AfterAgentResponseRequestQuery = Message<"agent.v1.AfterAgentResponseRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.AfterAgentResponseRequestQuery. + * Use `create(AfterAgentResponseRequestQuerySchema)` to create a new message. + */ +export const AfterAgentResponseRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 567); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.AfterAgentThoughtRequestQuery + */ +export type AfterAgentThoughtRequestQuery = Message<"agent.v1.AfterAgentThoughtRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.AfterAgentThoughtRequestQuery. + * Use `create(AfterAgentThoughtRequestQuerySchema)` to create a new message. + */ +export const AfterAgentThoughtRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 568); + +/** + * Payload not modelled: this client runs no Cursor hooks and only reads the oneof case. + * + * @generated from message agent.v1.StopRequestQuery + */ +export type StopRequestQuery = Message<"agent.v1.StopRequestQuery"> & { +}; + +/** + * Describes the message agent.v1.StopRequestQuery. + * Use `create(StopRequestQuerySchema)` to create a new message. + */ +export const StopRequestQuerySchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 569); + +/** + * @generated from message agent.v1.PreCompactRequestResponse + */ +export type PreCompactRequestResponse = Message<"agent.v1.PreCompactRequestResponse"> & { + /** + * @generated from field: optional string user_message = 1; + */ + userMessage?: string | undefined; +}; + +/** + * Describes the message agent.v1.PreCompactRequestResponse. + * Use `create(PreCompactRequestResponseSchema)` to create a new message. + */ +export const PreCompactRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 570); + +/** + * @generated from message agent.v1.SubagentStartRequestResponse + */ +export type SubagentStartRequestResponse = Message<"agent.v1.SubagentStartRequestResponse"> & { + /** + * @generated from field: optional string permission = 1; + */ + permission?: string | undefined; + + /** + * @generated from field: optional string user_message = 2; + */ + userMessage?: string | undefined; + + /** + * @generated from field: optional string additional_context = 3; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.SubagentStartRequestResponse. + * Use `create(SubagentStartRequestResponseSchema)` to create a new message. + */ +export const SubagentStartRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 571); + +/** + * @generated from message agent.v1.SubagentStopRequestResponse + */ +export type SubagentStopRequestResponse = Message<"agent.v1.SubagentStopRequestResponse"> & { + /** + * @generated from field: optional string followup_message = 1; + */ + followupMessage?: string | undefined; + + /** + * @generated from field: optional string additional_context = 2; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.SubagentStopRequestResponse. + * Use `create(SubagentStopRequestResponseSchema)` to create a new message. + */ +export const SubagentStopRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 572); + +/** + * @generated from message agent.v1.PreToolUseRequestResponse + */ +export type PreToolUseRequestResponse = Message<"agent.v1.PreToolUseRequestResponse"> & { + /** + * @generated from field: optional string permission = 1; + */ + permission?: string | undefined; + + /** + * @generated from field: optional string user_message = 2; + */ + userMessage?: string | undefined; + + /** + * @generated from field: optional string agent_message = 3; + */ + agentMessage?: string | undefined; + + /** + * @generated from field: optional string updated_input = 4; + */ + updatedInput?: string | undefined; + + /** + * @generated from field: optional string additional_context = 5; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.PreToolUseRequestResponse. + * Use `create(PreToolUseRequestResponseSchema)` to create a new message. + */ +export const PreToolUseRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 573); + +/** + * @generated from message agent.v1.PostToolUseRequestResponse + */ +export type PostToolUseRequestResponse = Message<"agent.v1.PostToolUseRequestResponse"> & { + /** + * @generated from field: optional string additional_context = 1; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.PostToolUseRequestResponse. + * Use `create(PostToolUseRequestResponseSchema)` to create a new message. + */ +export const PostToolUseRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 574); + +/** + * @generated from message agent.v1.PostToolUseFailureRequestResponse + */ +export type PostToolUseFailureRequestResponse = Message<"agent.v1.PostToolUseFailureRequestResponse"> & { + /** + * @generated from field: optional string additional_context = 1; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.PostToolUseFailureRequestResponse. + * Use `create(PostToolUseFailureRequestResponseSchema)` to create a new message. + */ +export const PostToolUseFailureRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 575); + +/** + * @generated from message agent.v1.BeforeSubmitPromptRequestResponse + */ +export type BeforeSubmitPromptRequestResponse = Message<"agent.v1.BeforeSubmitPromptRequestResponse"> & { + /** + * @generated from field: optional bool continue = 1; + */ + continue?: boolean | undefined; + + /** + * @generated from field: optional string user_message = 2; + */ + userMessage?: string | undefined; + + /** + * @generated from field: optional string additional_context = 3; + */ + additionalContext?: string | undefined; +}; + +/** + * Describes the message agent.v1.BeforeSubmitPromptRequestResponse. + * Use `create(BeforeSubmitPromptRequestResponseSchema)` to create a new message. + */ +export const BeforeSubmitPromptRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 576); + +/** + * @generated from message agent.v1.AfterAgentResponseRequestResponse + */ +export type AfterAgentResponseRequestResponse = Message<"agent.v1.AfterAgentResponseRequestResponse"> & { +}; + +/** + * Describes the message agent.v1.AfterAgentResponseRequestResponse. + * Use `create(AfterAgentResponseRequestResponseSchema)` to create a new message. + */ +export const AfterAgentResponseRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 577); + +/** + * @generated from message agent.v1.AfterAgentThoughtRequestResponse + */ +export type AfterAgentThoughtRequestResponse = Message<"agent.v1.AfterAgentThoughtRequestResponse"> & { +}; + +/** + * Describes the message agent.v1.AfterAgentThoughtRequestResponse. + * Use `create(AfterAgentThoughtRequestResponseSchema)` to create a new message. + */ +export const AfterAgentThoughtRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 578); + +/** + * @generated from message agent.v1.StopRequestResponse + */ +export type StopRequestResponse = Message<"agent.v1.StopRequestResponse"> & { + /** + * @generated from field: optional string followup_message = 1; + */ + followupMessage?: string | undefined; +}; + +/** + * Describes the message agent.v1.StopRequestResponse. + * Use `create(StopRequestResponseSchema)` to create a new message. + */ +export const StopRequestResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 579); + +/** + * @generated from message agent.v1.ExecuteHookRequest + */ +export type ExecuteHookRequest = Message<"agent.v1.ExecuteHookRequest"> & { + /** + * @generated from oneof agent.v1.ExecuteHookRequest.request + */ + request: { + /** + * @generated from field: agent.v1.PreCompactRequestQuery pre_compact = 1; + */ + value: PreCompactRequestQuery; + case: "preCompact"; + } | { + /** + * @generated from field: agent.v1.SubagentStartRequestQuery subagent_start = 2; + */ + value: SubagentStartRequestQuery; + case: "subagentStart"; + } | { + /** + * @generated from field: agent.v1.SubagentStopRequestQuery subagent_stop = 3; + */ + value: SubagentStopRequestQuery; + case: "subagentStop"; + } | { + /** + * @generated from field: agent.v1.PreToolUseRequestQuery pre_tool_use = 4; + */ + value: PreToolUseRequestQuery; + case: "preToolUse"; + } | { + /** + * @generated from field: agent.v1.PostToolUseRequestQuery post_tool_use = 5; + */ + value: PostToolUseRequestQuery; + case: "postToolUse"; + } | { + /** + * @generated from field: agent.v1.PostToolUseFailureRequestQuery post_tool_use_failure = 6; + */ + value: PostToolUseFailureRequestQuery; + case: "postToolUseFailure"; + } | { + /** + * @generated from field: agent.v1.BeforeSubmitPromptRequestQuery before_submit_prompt = 7; + */ + value: BeforeSubmitPromptRequestQuery; + case: "beforeSubmitPrompt"; + } | { + /** + * @generated from field: agent.v1.AfterAgentResponseRequestQuery after_agent_response = 8; + */ + value: AfterAgentResponseRequestQuery; + case: "afterAgentResponse"; + } | { + /** + * @generated from field: agent.v1.AfterAgentThoughtRequestQuery after_agent_thought = 9; + */ + value: AfterAgentThoughtRequestQuery; + case: "afterAgentThought"; + } | { + /** + * @generated from field: agent.v1.StopRequestQuery stop = 11; + */ + value: StopRequestQuery; + case: "stop"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.ExecuteHookRequest. + * Use `create(ExecuteHookRequestSchema)` to create a new message. + */ +export const ExecuteHookRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 580); + +/** + * @generated from message agent.v1.ExecuteHookResponse + */ +export type ExecuteHookResponse = Message<"agent.v1.ExecuteHookResponse"> & { + /** + * @generated from oneof agent.v1.ExecuteHookResponse.response + */ + response: { + /** + * @generated from field: agent.v1.PreCompactRequestResponse pre_compact = 1; + */ + value: PreCompactRequestResponse; + case: "preCompact"; + } | { + /** + * @generated from field: agent.v1.SubagentStartRequestResponse subagent_start = 2; + */ + value: SubagentStartRequestResponse; + case: "subagentStart"; + } | { + /** + * @generated from field: agent.v1.SubagentStopRequestResponse subagent_stop = 3; + */ + value: SubagentStopRequestResponse; + case: "subagentStop"; + } | { + /** + * @generated from field: agent.v1.PreToolUseRequestResponse pre_tool_use = 4; + */ + value: PreToolUseRequestResponse; + case: "preToolUse"; + } | { + /** + * @generated from field: agent.v1.PostToolUseRequestResponse post_tool_use = 5; + */ + value: PostToolUseRequestResponse; + case: "postToolUse"; + } | { + /** + * @generated from field: agent.v1.PostToolUseFailureRequestResponse post_tool_use_failure = 6; + */ + value: PostToolUseFailureRequestResponse; + case: "postToolUseFailure"; + } | { + /** + * @generated from field: agent.v1.BeforeSubmitPromptRequestResponse before_submit_prompt = 7; + */ + value: BeforeSubmitPromptRequestResponse; + case: "beforeSubmitPrompt"; + } | { + /** + * @generated from field: agent.v1.AfterAgentResponseRequestResponse after_agent_response = 8; + */ + value: AfterAgentResponseRequestResponse; + case: "afterAgentResponse"; + } | { + /** + * @generated from field: agent.v1.AfterAgentThoughtRequestResponse after_agent_thought = 9; + */ + value: AfterAgentThoughtRequestResponse; + case: "afterAgentThought"; + } | { + /** + * @generated from field: agent.v1.StopRequestResponse stop = 11; + */ + value: StopRequestResponse; + case: "stop"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.ExecuteHookResponse. + * Use `create(ExecuteHookResponseSchema)` to create a new message. + */ +export const ExecuteHookResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 581); + +/** + * @generated from message agent.v1.ExecuteHookArgs + */ +export type ExecuteHookArgs = Message<"agent.v1.ExecuteHookArgs"> & { + /** + * @generated from field: agent.v1.ExecuteHookRequest request = 1; + */ + request?: ExecuteHookRequest | undefined; +}; + +/** + * Describes the message agent.v1.ExecuteHookArgs. + * Use `create(ExecuteHookArgsSchema)` to create a new message. + */ +export const ExecuteHookArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 582); + +/** + * @generated from message agent.v1.ExecuteHookResult + */ +export type ExecuteHookResult = Message<"agent.v1.ExecuteHookResult"> & { + /** + * @generated from field: agent.v1.ExecuteHookResponse response = 1; + */ + response?: ExecuteHookResponse | undefined; +}; + +/** + * Describes the message agent.v1.ExecuteHookResult. + * Use `create(ExecuteHookResultSchema)` to create a new message. + */ +export const ExecuteHookResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 583); + +/** + * Subset: arguments=2 (google.protobuf.Struct) decodes into unknown fields; do not reuse. + * + * @generated from message agent.v1.SmartModeRiskTarget + */ +export type SmartModeRiskTarget = Message<"agent.v1.SmartModeRiskTarget"> & { + /** + * @generated from field: string action = 1; + */ + action: string; +}; + +/** + * Describes the message agent.v1.SmartModeRiskTarget. + * Use `create(SmartModeRiskTargetSchema)` to create a new message. + */ +export const SmartModeRiskTargetSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 584); + +/** + * @generated from message agent.v1.SmartModeClassifierConversationMessage + */ +export type SmartModeClassifierConversationMessage = Message<"agent.v1.SmartModeClassifierConversationMessage"> & { + /** + * @generated from field: string role = 1; + */ + role: string; + + /** + * @generated from field: string content = 2; + */ + content: string; +}; + +/** + * Describes the message agent.v1.SmartModeClassifierConversationMessage. + * Use `create(SmartModeClassifierConversationMessageSchema)` to create a new message. + */ +export const SmartModeClassifierConversationMessageSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 585); + +/** + * @generated from message agent.v1.SmartModeClassifierArgs + */ +export type SmartModeClassifierArgs = Message<"agent.v1.SmartModeClassifierArgs"> & { + /** + * @generated from field: string tool_call_id = 1; + */ + toolCallId: string; + + /** + * @generated from field: optional string parent_conversation_id = 2; + */ + parentConversationId?: string | undefined; + + /** + * @generated from field: agent.v1.SmartModeRiskTarget target = 3; + */ + target?: SmartModeRiskTarget | undefined; + + /** + * @generated from field: repeated agent.v1.SmartModeClassifierConversationMessage conversation_context = 4; + */ + conversationContext: SmartModeClassifierConversationMessage[]; +}; + +/** + * Describes the message agent.v1.SmartModeClassifierArgs. + * Use `create(SmartModeClassifierArgsSchema)` to create a new message. + */ +export const SmartModeClassifierArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 586); + +/** + * @generated from message agent.v1.SmartModeClassifierSuccess + */ +export type SmartModeClassifierSuccess = Message<"agent.v1.SmartModeClassifierSuccess"> & { + /** + * @generated from field: agent.v1.SmartModeClassifierDecision decision = 1; + */ + decision: SmartModeClassifierDecision; + + /** + * @generated from field: optional string block_reason = 2; + */ + blockReason?: string | undefined; +}; + +/** + * Describes the message agent.v1.SmartModeClassifierSuccess. + * Use `create(SmartModeClassifierSuccessSchema)` to create a new message. + */ +export const SmartModeClassifierSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 587); + +/** + * @generated from message agent.v1.SmartModeClassifierError + */ +export type SmartModeClassifierError = Message<"agent.v1.SmartModeClassifierError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.SmartModeClassifierError. + * Use `create(SmartModeClassifierErrorSchema)` to create a new message. + */ +export const SmartModeClassifierErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 588); + +/** + * @generated from message agent.v1.SmartModeClassifierResult + */ +export type SmartModeClassifierResult = Message<"agent.v1.SmartModeClassifierResult"> & { + /** + * @generated from oneof agent.v1.SmartModeClassifierResult.result + */ + result: { + /** + * @generated from field: agent.v1.SmartModeClassifierSuccess success = 1; + */ + value: SmartModeClassifierSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.SmartModeClassifierError error = 2; + */ + value: SmartModeClassifierError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.SmartModeClassifierResult. + * Use `create(SmartModeClassifierResultSchema)` to create a new message. + */ +export const SmartModeClassifierResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 589); + +/** + * @generated from message agent.v1.CanvasDiagnosticsArgs + */ +export type CanvasDiagnosticsArgs = Message<"agent.v1.CanvasDiagnosticsArgs"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; +}; + +/** + * Describes the message agent.v1.CanvasDiagnosticsArgs. + * Use `create(CanvasDiagnosticsArgsSchema)` to create a new message. + */ +export const CanvasDiagnosticsArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 590); + +/** + * @generated from message agent.v1.CanvasDiagnosticsSuccess + */ +export type CanvasDiagnosticsSuccess = Message<"agent.v1.CanvasDiagnosticsSuccess"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: repeated agent.v1.Diagnostic diagnostics = 2; + */ + diagnostics: Diagnostic[]; +}; + +/** + * Describes the message agent.v1.CanvasDiagnosticsSuccess. + * Use `create(CanvasDiagnosticsSuccessSchema)` to create a new message. + */ +export const CanvasDiagnosticsSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 591); + +/** + * @generated from message agent.v1.CanvasDiagnosticsError + */ +export type CanvasDiagnosticsError = Message<"agent.v1.CanvasDiagnosticsError"> & { + /** + * @generated from field: string path = 1; + */ + path: string; + + /** + * @generated from field: string error = 2; + */ + error: string; +}; + +/** + * Describes the message agent.v1.CanvasDiagnosticsError. + * Use `create(CanvasDiagnosticsErrorSchema)` to create a new message. + */ +export const CanvasDiagnosticsErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 592); + +/** + * @generated from message agent.v1.CanvasDiagnosticsResult + */ +export type CanvasDiagnosticsResult = Message<"agent.v1.CanvasDiagnosticsResult"> & { + /** + * @generated from oneof agent.v1.CanvasDiagnosticsResult.result + */ + result: { + /** + * @generated from field: agent.v1.CanvasDiagnosticsSuccess success = 1; + */ + value: CanvasDiagnosticsSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.CanvasDiagnosticsError error = 2; + */ + value: CanvasDiagnosticsError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.CanvasDiagnosticsResult. + * Use `create(CanvasDiagnosticsResultSchema)` to create a new message. + */ +export const CanvasDiagnosticsResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 593); + +/** + * @generated from message agent.v1.ConversationSearchHit + */ +export type ConversationSearchHit = Message<"agent.v1.ConversationSearchHit"> & { + /** + * @generated from field: string conversation_id = 1; + */ + conversationId: string; + + /** + * @generated from field: string title = 2; + */ + title: string; + + /** + * @generated from field: agent.v1.ConversationSearchSource source = 3; + */ + source: ConversationSearchSource; + + /** + * @generated from field: int64 updated_at_ms = 4; + */ + updatedAtMs: bigint; + + /** + * @generated from field: optional string snippet = 5; + */ + snippet?: string | undefined; +}; + +/** + * Describes the message agent.v1.ConversationSearchHit. + * Use `create(ConversationSearchHitSchema)` to create a new message. + */ +export const ConversationSearchHitSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 594); + +/** + * @generated from message agent.v1.ConversationSearchSuccess + */ +export type ConversationSearchSuccess = Message<"agent.v1.ConversationSearchSuccess"> & { + /** + * @generated from field: repeated agent.v1.ConversationSearchHit hits = 1; + */ + hits: ConversationSearchHit[]; + + /** + * @generated from field: bool truncated = 2; + */ + truncated: boolean; + + /** + * @generated from field: bool partial = 3; + */ + partial: boolean; + + /** + * @generated from field: bool rebuilding = 4; + */ + rebuilding: boolean; +}; + +/** + * Describes the message agent.v1.ConversationSearchSuccess. + * Use `create(ConversationSearchSuccessSchema)` to create a new message. + */ +export const ConversationSearchSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 595); + +/** + * @generated from message agent.v1.ConversationSearchError + */ +export type ConversationSearchError = Message<"agent.v1.ConversationSearchError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.ConversationSearchError. + * Use `create(ConversationSearchErrorSchema)` to create a new message. + */ +export const ConversationSearchErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 596); + +/** + * @generated from message agent.v1.ConversationSearchArgs + */ +export type ConversationSearchArgs = Message<"agent.v1.ConversationSearchArgs"> & { + /** + * @generated from field: string query = 1; + */ + query: string; + + /** + * @generated from field: string tool_call_id = 2; + */ + toolCallId: string; + + /** + * @generated from field: optional int32 limit = 3; + */ + limit?: number | undefined; +}; + +/** + * Describes the message agent.v1.ConversationSearchArgs. + * Use `create(ConversationSearchArgsSchema)` to create a new message. + */ +export const ConversationSearchArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 597); + +/** + * @generated from message agent.v1.ConversationSearchResult + */ +export type ConversationSearchResult = Message<"agent.v1.ConversationSearchResult"> & { + /** + * @generated from oneof agent.v1.ConversationSearchResult.result + */ + result: { + /** + * @generated from field: agent.v1.ConversationSearchSuccess success = 1; + */ + value: ConversationSearchSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.ConversationSearchError error = 2; + */ + value: ConversationSearchError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.ConversationSearchResult. + * Use `create(ConversationSearchResultSchema)` to create a new message. + */ +export const ConversationSearchResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 598); + +/** + * @generated from message agent.v1.AgentStoreConflictCursor + */ +export type AgentStoreConflictCursor = Message<"agent.v1.AgentStoreConflictCursor"> & { + /** + * @generated from field: string journal_epoch = 1; + */ + journalEpoch: string; + + /** + * @generated from field: uint64 seq = 2; + */ + seq: bigint; + + /** + * @generated from field: string last_event_id = 3; + */ + lastEventId: string; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictCursor. + * Use `create(AgentStoreConflictCursorSchema)` to create a new message. + */ +export const AgentStoreConflictCursorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 599); + +/** + * @generated from message agent.v1.AgentStoreConflictEvent + */ +export type AgentStoreConflictEvent = Message<"agent.v1.AgentStoreConflictEvent"> & { + /** + * @generated from field: uint32 v = 1; + */ + v: number; + + /** + * @generated from field: string event_id = 2; + */ + eventId: string; + + /** + * @generated from field: string journal_epoch = 3; + */ + journalEpoch: string; + + /** + * @generated from field: uint64 seq = 4; + */ + seq: bigint; + + /** + * @generated from field: uint64 ts_ms = 5; + */ + tsMs: bigint; + + /** + * @generated from field: string kind = 6; + */ + kind: string; + + /** + * @generated from field: optional string store_id = 7; + */ + storeId?: string | undefined; + + /** + * @generated from field: optional string original_rel_path = 8; + */ + originalRelPath?: string | undefined; + + /** + * @generated from field: optional string conflict_rel_path = 9; + */ + conflictRelPath?: string | undefined; + + /** + * @generated from field: optional string original_abs_path = 10; + */ + originalAbsPath?: string | undefined; + + /** + * @generated from field: optional string conflict_abs_path = 11; + */ + conflictAbsPath?: string | undefined; + + /** + * @generated from field: optional uint64 preserved_bytes = 12; + */ + preservedBytes?: bigint | undefined; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictEvent. + * Use `create(AgentStoreConflictEventSchema)` to create a new message. + */ +export const AgentStoreConflictEventSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 600); + +/** + * @generated from message agent.v1.AgentStoreConflictSuccess + */ +export type AgentStoreConflictSuccess = Message<"agent.v1.AgentStoreConflictSuccess"> & { + /** + * @generated from field: repeated agent.v1.AgentStoreConflictEvent events = 1; + */ + events: AgentStoreConflictEvent[]; + + /** + * @generated from field: agent.v1.AgentStoreConflictCursor next_cursor = 2; + */ + nextCursor?: AgentStoreConflictCursor | undefined; + + /** + * @generated from field: bool gap = 3; + */ + gap: boolean; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictSuccess. + * Use `create(AgentStoreConflictSuccessSchema)` to create a new message. + */ +export const AgentStoreConflictSuccessSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 601); + +/** + * @generated from message agent.v1.AgentStoreConflictError + */ +export type AgentStoreConflictError = Message<"agent.v1.AgentStoreConflictError"> & { + /** + * @generated from field: string error = 1; + */ + error: string; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictError. + * Use `create(AgentStoreConflictErrorSchema)` to create a new message. + */ +export const AgentStoreConflictErrorSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 602); + +/** + * @generated from message agent.v1.AgentStoreConflictArgs + */ +export type AgentStoreConflictArgs = Message<"agent.v1.AgentStoreConflictArgs"> & { + /** + * @generated from field: optional agent.v1.AgentStoreConflictCursor cursor = 1; + */ + cursor?: AgentStoreConflictCursor | undefined; + + /** + * @generated from field: optional bool advance = 2; + */ + advance?: boolean | undefined; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictArgs. + * Use `create(AgentStoreConflictArgsSchema)` to create a new message. + */ +export const AgentStoreConflictArgsSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 603); + +/** + * @generated from message agent.v1.AgentStoreConflictResult + */ +export type AgentStoreConflictResult = Message<"agent.v1.AgentStoreConflictResult"> & { + /** + * @generated from oneof agent.v1.AgentStoreConflictResult.result + */ + result: { + /** + * @generated from field: agent.v1.AgentStoreConflictSuccess success = 1; + */ + value: AgentStoreConflictSuccess; + case: "success"; + } | { + /** + * @generated from field: agent.v1.AgentStoreConflictError error = 2; + */ + value: AgentStoreConflictError; + case: "error"; + } | { case: undefined; value?: undefined }; +}; + +/** + * Describes the message agent.v1.AgentStoreConflictResult. + * Use `create(AgentStoreConflictResultSchema)` to create a new message. + */ +export const AgentStoreConflictResultSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 604); + +/** + * @generated from message agent.v1.FileDiff_Chunk + */ +export type FileDiff_Chunk = Message<"agent.v1.FileDiff_Chunk"> & { + /** + * @generated from field: string content = 1; + */ + content: string; + + /** + * @generated from field: repeated string lines = 2; + */ + lines: string[]; + + /** + * @generated from field: int32 old_start = 3; + */ + oldStart: number; + + /** + * @generated from field: int32 old_lines = 4; + */ + oldLines: number; + + /** + * @generated from field: int32 new_start = 5; + */ + newStart: number; + + /** + * @generated from field: int32 new_lines = 6; + */ + newLines: number; +}; + +/** + * Describes the message agent.v1.FileDiff_Chunk. + * Use `create(FileDiff_ChunkSchema)` to create a new message. + */ +export const FileDiff_ChunkSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 605); + +/** + * @generated from message agent.v1.FileDiff + */ +export type FileDiff = Message<"agent.v1.FileDiff"> & { + /** + * @generated from field: int32 added = 4; + */ + added: number; + + /** + * @generated from field: int32 removed = 5; + */ + removed: number; + + /** + * @generated from field: string from = 1; + */ + from: string; + + /** + * @generated from field: string to = 2; + */ + to: string; + + /** + * @generated from field: repeated agent.v1.FileDiff_Chunk chunks = 3; + */ + chunks: FileDiff_Chunk[]; + + /** + * @generated from field: optional string before_file_contents = 6; + */ + beforeFileContents?: string | undefined; + + /** + * @generated from field: optional string after_file_contents = 7; + */ + afterFileContents?: string | undefined; + + /** + * @generated from field: optional bool is_generated = 8; + */ + isGenerated?: boolean | undefined; +}; + +/** + * Describes the message agent.v1.FileDiff. + * Use `create(FileDiffSchema)` to create a new message. + */ +export const FileDiffSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 606); + +/** + * @generated from message agent.v1.GitDiff + */ +export type GitDiff = Message<"agent.v1.GitDiff"> & { + /** + * @generated from field: repeated agent.v1.FileDiff diffs = 1; + */ + diffs: FileDiff[]; + + /** + * @generated from field: agent.v1.GitDiff_DiffType diff_type = 2; + */ + diffType: GitDiff_DiffType; +}; + +/** + * Describes the message agent.v1.GitDiff. + * Use `create(GitDiffSchema)` to create a new message. + */ +export const GitDiffSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 607); + +/** + * @generated from message agent.v1.GetDiffResponse_SubmoduleDiff + */ +export type GetDiffResponse_SubmoduleDiff = Message<"agent.v1.GetDiffResponse_SubmoduleDiff"> & { + /** + * @generated from field: string relative_path = 1; + */ + relativePath: string; + + /** + * @generated from field: agent.v1.GitDiff diff = 2; + */ + diff?: GitDiff | undefined; + + /** + * @generated from field: bool errored = 3; + */ + errored: boolean; +}; + +/** + * Describes the message agent.v1.GetDiffResponse_SubmoduleDiff. + * Use `create(GetDiffResponse_SubmoduleDiffSchema)` to create a new message. + */ +export const GetDiffResponse_SubmoduleDiffSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 608); + +/** + * @generated from message agent.v1.GetDiffRequest + */ +export type GetDiffRequest = Message<"agent.v1.GetDiffRequest"> & { + /** + * @generated from field: string cwd = 1; + */ + cwd: string; + + /** + * @generated from field: string ref = 2; + */ + ref: string; + + /** + * @generated from field: string base_ref = 3; + */ + baseRef: string; + + /** + * @generated from field: bool merge_base = 4; + */ + mergeBase: boolean; + + /** + * @generated from field: repeated string target_paths = 5; + */ + targetPaths: string[]; + + /** + * @generated from field: optional int32 unified_context_lines = 6; + */ + unifiedContextLines?: number | undefined; + + /** + * @generated from field: int32 max_untracked_files = 7; + */ + maxUntrackedFiles: number; + + /** + * @generated from field: int32 submodule_recurse_depth = 9; + */ + submoduleRecurseDepth: number; + + /** + * @generated from field: bool include_space_changes = 10; + */ + includeSpaceChanges: boolean; + + /** + * @generated from field: bool committed_only = 11; + */ + committedOnly: boolean; + + /** + * @generated from field: bool compute_patch_id = 12; + */ + computePatchId: boolean; + + /** + * @generated from field: optional bool return_head_sha = 13; + */ + returnHeadSha?: boolean | undefined; + + /** + * @generated from field: optional int32 max_response_bytes = 14; + */ + maxResponseBytes?: number | undefined; + + /** + * @generated from field: optional agent.v1.GetDiffRequest_OutputFormat output_format = 8; + */ + outputFormat?: GetDiffRequest_OutputFormat | undefined; +}; + +/** + * Describes the message agent.v1.GetDiffRequest. + * Use `create(GetDiffRequestSchema)` to create a new message. + */ +export const GetDiffRequestSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 609); + +/** + * @generated from message agent.v1.GetDiffResponse + */ +export type GetDiffResponse = Message<"agent.v1.GetDiffResponse"> & { + /** + * @generated from field: agent.v1.GitDiff diff = 1; + */ + diff?: GitDiff | undefined; + + /** + * @generated from field: repeated agent.v1.GetDiffResponse_SubmoduleDiff submodule_diffs = 2; + */ + submoduleDiffs: GetDiffResponse_SubmoduleDiff[]; + + /** + * @generated from field: optional string patch_id = 3; + */ + patchId?: string | undefined; + + /** + * @generated from field: optional string head_sha = 4; + */ + headSha?: string | undefined; + + /** + * @generated from field: optional bool has_uncommitted_changes = 5; + */ + hasUncommittedChanges?: boolean | undefined; +}; + +/** + * Describes the message agent.v1.GetDiffResponse. + * Use `create(GetDiffResponseSchema)` to create a new message. + */ +export const GetDiffResponseSchema: GenMessage = /*@__PURE__*/ + messageDesc(file_agent, 610); /** * @generated from enum agent.v1.AppliedAgentChange_ChangeType */ export enum AppliedAgentChange_ChangeType { - /** - * @generated from enum value: CHANGE_TYPE_UNSPECIFIED = 0; - */ - CHANGE_TYPE_UNSPECIFIED = 0, + /** + * @generated from enum value: CHANGE_TYPE_UNSPECIFIED = 0; + */ + CHANGE_TYPE_UNSPECIFIED = 0, - /** - * @generated from enum value: CHANGE_TYPE_CREATED = 1; - */ - CHANGE_TYPE_CREATED = 1, + /** + * @generated from enum value: CHANGE_TYPE_CREATED = 1; + */ + CHANGE_TYPE_CREATED = 1, - /** - * @generated from enum value: CHANGE_TYPE_MODIFIED = 2; - */ - CHANGE_TYPE_MODIFIED = 2, + /** + * @generated from enum value: CHANGE_TYPE_MODIFIED = 2; + */ + CHANGE_TYPE_MODIFIED = 2, - /** - * @generated from enum value: CHANGE_TYPE_DELETED = 3; - */ - CHANGE_TYPE_DELETED = 3, + /** + * @generated from enum value: CHANGE_TYPE_DELETED = 3; + */ + CHANGE_TYPE_DELETED = 3, } /** * Describes the enum agent.v1.AppliedAgentChange_ChangeType. */ -export const AppliedAgentChange_ChangeTypeSchema: GenEnum = - /*@__PURE__*/ - enumDesc(file_agent, 0); +export const AppliedAgentChange_ChangeTypeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 0); /** * @generated from enum agent.v1.MouseButton */ export enum MouseButton { - /** - * @generated from enum value: MOUSE_BUTTON_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: MOUSE_BUTTON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: MOUSE_BUTTON_LEFT = 1; - */ - LEFT = 1, + /** + * @generated from enum value: MOUSE_BUTTON_LEFT = 1; + */ + LEFT = 1, - /** - * @generated from enum value: MOUSE_BUTTON_RIGHT = 2; - */ - RIGHT = 2, + /** + * @generated from enum value: MOUSE_BUTTON_RIGHT = 2; + */ + RIGHT = 2, - /** - * @generated from enum value: MOUSE_BUTTON_MIDDLE = 3; - */ - MIDDLE = 3, + /** + * @generated from enum value: MOUSE_BUTTON_MIDDLE = 3; + */ + MIDDLE = 3, - /** - * @generated from enum value: MOUSE_BUTTON_BACK = 4; - */ - BACK = 4, + /** + * @generated from enum value: MOUSE_BUTTON_BACK = 4; + */ + BACK = 4, - /** - * @generated from enum value: MOUSE_BUTTON_FORWARD = 5; - */ - FORWARD = 5, + /** + * @generated from enum value: MOUSE_BUTTON_FORWARD = 5; + */ + FORWARD = 5, } /** * Describes the enum agent.v1.MouseButton. */ -export const MouseButtonSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 1); +export const MouseButtonSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 1); /** * @generated from enum agent.v1.ScrollDirection */ export enum ScrollDirection { - /** - * @generated from enum value: SCROLL_DIRECTION_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: SCROLL_DIRECTION_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: SCROLL_DIRECTION_UP = 1; - */ - UP = 1, + /** + * @generated from enum value: SCROLL_DIRECTION_UP = 1; + */ + UP = 1, - /** - * @generated from enum value: SCROLL_DIRECTION_DOWN = 2; - */ - DOWN = 2, + /** + * @generated from enum value: SCROLL_DIRECTION_DOWN = 2; + */ + DOWN = 2, - /** - * @generated from enum value: SCROLL_DIRECTION_LEFT = 3; - */ - LEFT = 3, + /** + * @generated from enum value: SCROLL_DIRECTION_LEFT = 3; + */ + LEFT = 3, - /** - * @generated from enum value: SCROLL_DIRECTION_RIGHT = 4; - */ - RIGHT = 4, + /** + * @generated from enum value: SCROLL_DIRECTION_RIGHT = 4; + */ + RIGHT = 4, } /** * Describes the enum agent.v1.ScrollDirection. */ -export const ScrollDirectionSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 2); +export const ScrollDirectionSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 2); /** * @generated from enum agent.v1.CursorRuleSource */ export enum CursorRuleSource { - /** - * @generated from enum value: CURSOR_RULE_SOURCE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: CURSOR_RULE_SOURCE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: CURSOR_RULE_SOURCE_TEAM = 1; - */ - TEAM = 1, + /** + * @generated from enum value: CURSOR_RULE_SOURCE_TEAM = 1; + */ + TEAM = 1, - /** - * @generated from enum value: CURSOR_RULE_SOURCE_USER = 2; - */ - USER = 2, + /** + * @generated from enum value: CURSOR_RULE_SOURCE_USER = 2; + */ + USER = 2, } /** * Describes the enum agent.v1.CursorRuleSource. */ -export const CursorRuleSourceSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 3); +export const CursorRuleSourceSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 3); /** * @generated from enum agent.v1.DiagnosticSeverity */ export enum DiagnosticSeverity { - /** - * @generated from enum value: DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: DIAGNOSTIC_SEVERITY_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: DIAGNOSTIC_SEVERITY_ERROR = 1; - */ - ERROR = 1, + /** + * @generated from enum value: DIAGNOSTIC_SEVERITY_ERROR = 1; + */ + ERROR = 1, - /** - * @generated from enum value: DIAGNOSTIC_SEVERITY_WARNING = 2; - */ - WARNING = 2, + /** + * @generated from enum value: DIAGNOSTIC_SEVERITY_WARNING = 2; + */ + WARNING = 2, - /** - * @generated from enum value: DIAGNOSTIC_SEVERITY_INFORMATION = 3; - */ - INFORMATION = 3, + /** + * @generated from enum value: DIAGNOSTIC_SEVERITY_INFORMATION = 3; + */ + INFORMATION = 3, - /** - * @generated from enum value: DIAGNOSTIC_SEVERITY_HINT = 4; - */ - HINT = 4, + /** + * @generated from enum value: DIAGNOSTIC_SEVERITY_HINT = 4; + */ + HINT = 4, } /** * Describes the enum agent.v1.DiagnosticSeverity. */ -export const DiagnosticSeveritySchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 4); +export const DiagnosticSeveritySchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 4); /** * @generated from enum agent.v1.RecordingMode */ export enum RecordingMode { - /** - * @generated from enum value: RECORDING_MODE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: RECORDING_MODE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: RECORDING_MODE_START_RECORDING = 1; - */ - START_RECORDING = 1, + /** + * @generated from enum value: RECORDING_MODE_START_RECORDING = 1; + */ + START_RECORDING = 1, - /** - * @generated from enum value: RECORDING_MODE_SAVE_RECORDING = 2; - */ - SAVE_RECORDING = 2, + /** + * @generated from enum value: RECORDING_MODE_SAVE_RECORDING = 2; + */ + SAVE_RECORDING = 2, - /** - * @generated from enum value: RECORDING_MODE_DISCARD_RECORDING = 3; - */ - DISCARD_RECORDING = 3, + /** + * @generated from enum value: RECORDING_MODE_DISCARD_RECORDING = 3; + */ + DISCARD_RECORDING = 3, } /** * Describes the enum agent.v1.RecordingMode. */ -export const RecordingModeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 5); +export const RecordingModeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 5); /** * @generated from enum agent.v1.RequestedFilePathRejectedReason */ export enum RequestedFilePathRejectedReason { - /** - * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_SLASHES_NOT_ALLOWED = 1; - */ - SLASHES_NOT_ALLOWED = 1, + /** + * @generated from enum value: REQUESTED_FILE_PATH_REJECTED_REASON_SLASHES_NOT_ALLOWED = 1; + */ + SLASHES_NOT_ALLOWED = 1, } /** * Describes the enum agent.v1.RequestedFilePathRejectedReason. */ -export const RequestedFilePathRejectedReasonSchema: GenEnum = - /*@__PURE__*/ - enumDesc(file_agent, 6); +export const RequestedFilePathRejectedReasonSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 6); /** * @generated from enum agent.v1.PackageType */ export enum PackageType { - /** - * @generated from enum value: PACKAGE_TYPE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: PACKAGE_TYPE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: PACKAGE_TYPE_CURSOR_PROJECT = 1; - */ - CURSOR_PROJECT = 1, + /** + * @generated from enum value: PACKAGE_TYPE_CURSOR_PROJECT = 1; + */ + CURSOR_PROJECT = 1, - /** - * @generated from enum value: PACKAGE_TYPE_CURSOR_PERSONAL = 2; - */ - CURSOR_PERSONAL = 2, + /** + * @generated from enum value: PACKAGE_TYPE_CURSOR_PERSONAL = 2; + */ + CURSOR_PERSONAL = 2, - /** - * @generated from enum value: PACKAGE_TYPE_CLAUDE_SKILL = 3; - */ - CLAUDE_SKILL = 3, + /** + * @generated from enum value: PACKAGE_TYPE_CLAUDE_SKILL = 3; + */ + CLAUDE_SKILL = 3, - /** - * @generated from enum value: PACKAGE_TYPE_CLAUDE_PLUGIN = 4; - */ - CLAUDE_PLUGIN = 4, + /** + * @generated from enum value: PACKAGE_TYPE_CLAUDE_PLUGIN = 4; + */ + CLAUDE_PLUGIN = 4, } /** * Describes the enum agent.v1.PackageType. */ -export const PackageTypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 7); +export const PackageTypeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 7); /** * @generated from enum agent.v1.SandboxPolicy_Type */ export enum SandboxPolicy_Type { - /** - * @generated from enum value: TYPE_UNSPECIFIED = 0; - */ - TYPE_UNSPECIFIED = 0, + /** + * @generated from enum value: TYPE_UNSPECIFIED = 0; + */ + TYPE_UNSPECIFIED = 0, - /** - * @generated from enum value: TYPE_INSECURE_NONE = 1; - */ - TYPE_INSECURE_NONE = 1, + /** + * @generated from enum value: TYPE_INSECURE_NONE = 1; + */ + TYPE_INSECURE_NONE = 1, - /** - * @generated from enum value: TYPE_WORKSPACE_READWRITE = 2; - */ - TYPE_WORKSPACE_READWRITE = 2, + /** + * @generated from enum value: TYPE_WORKSPACE_READWRITE = 2; + */ + TYPE_WORKSPACE_READWRITE = 2, - /** - * @generated from enum value: TYPE_WORKSPACE_READONLY = 3; - */ - TYPE_WORKSPACE_READONLY = 3, + /** + * @generated from enum value: TYPE_WORKSPACE_READONLY = 3; + */ + TYPE_WORKSPACE_READONLY = 3, } /** * Describes the enum agent.v1.SandboxPolicy_Type. */ -export const SandboxPolicy_TypeSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 8); +export const SandboxPolicy_TypeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 8); /** * @generated from enum agent.v1.TimeoutBehavior */ export enum TimeoutBehavior { - /** - * @generated from enum value: TIMEOUT_BEHAVIOR_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: TIMEOUT_BEHAVIOR_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: TIMEOUT_BEHAVIOR_CANCEL = 1; - */ - CANCEL = 1, + /** + * @generated from enum value: TIMEOUT_BEHAVIOR_CANCEL = 1; + */ + CANCEL = 1, - /** - * @generated from enum value: TIMEOUT_BEHAVIOR_BACKGROUND = 2; - */ - BACKGROUND = 2, + /** + * @generated from enum value: TIMEOUT_BEHAVIOR_BACKGROUND = 2; + */ + BACKGROUND = 2, } /** * Describes the enum agent.v1.TimeoutBehavior. */ -export const TimeoutBehaviorSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 9); +export const TimeoutBehaviorSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 9); /** * @generated from enum agent.v1.ShellAbortReason */ export enum ShellAbortReason { - /** - * @generated from enum value: SHELL_ABORT_REASON_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: SHELL_ABORT_REASON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: SHELL_ABORT_REASON_USER_ABORT = 1; - */ - USER_ABORT = 1, + /** + * @generated from enum value: SHELL_ABORT_REASON_USER_ABORT = 1; + */ + USER_ABORT = 1, - /** - * @generated from enum value: SHELL_ABORT_REASON_TIMEOUT = 2; - */ - TIMEOUT = 2, + /** + * @generated from enum value: SHELL_ABORT_REASON_TIMEOUT = 2; + */ + TIMEOUT = 2, } /** * Describes the enum agent.v1.ShellAbortReason. */ -export const ShellAbortReasonSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 10); +export const ShellAbortReasonSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 10); /** * @generated from enum agent.v1.CustomSubagentPermissionMode */ export enum CustomSubagentPermissionMode { - /** - * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_DEFAULT = 1; - */ - DEFAULT = 1, + /** + * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_DEFAULT = 1; + */ + DEFAULT = 1, - /** - * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_READONLY = 2; - */ - READONLY = 2, + /** + * @generated from enum value: CUSTOM_SUBAGENT_PERMISSION_MODE_READONLY = 2; + */ + READONLY = 2, } /** * Describes the enum agent.v1.CustomSubagentPermissionMode. */ -export const CustomSubagentPermissionModeSchema: GenEnum = - /*@__PURE__*/ - enumDesc(file_agent, 11); +export const CustomSubagentPermissionModeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 11); /** * @generated from enum agent.v1.TodoStatus */ export enum TodoStatus { - /** - * @generated from enum value: TODO_STATUS_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: TODO_STATUS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: TODO_STATUS_PENDING = 1; - */ - PENDING = 1, + /** + * @generated from enum value: TODO_STATUS_PENDING = 1; + */ + PENDING = 1, - /** - * @generated from enum value: TODO_STATUS_IN_PROGRESS = 2; - */ - IN_PROGRESS = 2, + /** + * @generated from enum value: TODO_STATUS_IN_PROGRESS = 2; + */ + IN_PROGRESS = 2, - /** - * @generated from enum value: TODO_STATUS_COMPLETED = 3; - */ - COMPLETED = 3, + /** + * @generated from enum value: TODO_STATUS_COMPLETED = 3; + */ + COMPLETED = 3, - /** - * @generated from enum value: TODO_STATUS_CANCELLED = 4; - */ - CANCELLED = 4, + /** + * @generated from enum value: TODO_STATUS_CANCELLED = 4; + */ + CANCELLED = 4, } /** * Describes the enum agent.v1.TodoStatus. */ -export const TodoStatusSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 12); +export const TodoStatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 12); /** * @generated from enum agent.v1.ClientOS */ export enum ClientOS { - /** - * @generated from enum value: CLIENT_OS_UNSPECIFIED = 0; - */ - CLIENT_OS_UNSPECIFIED = 0, + /** + * @generated from enum value: CLIENT_OS_UNSPECIFIED = 0; + */ + CLIENT_OS_UNSPECIFIED = 0, - /** - * @generated from enum value: CLIENT_OS_WINDOWS = 1; - */ - CLIENT_OS_WINDOWS = 1, + /** + * @generated from enum value: CLIENT_OS_WINDOWS = 1; + */ + CLIENT_OS_WINDOWS = 1, - /** - * @generated from enum value: CLIENT_OS_MACOS = 2; - */ - CLIENT_OS_MACOS = 2, + /** + * @generated from enum value: CLIENT_OS_MACOS = 2; + */ + CLIENT_OS_MACOS = 2, - /** - * @generated from enum value: CLIENT_OS_LINUX = 3; - */ - CLIENT_OS_LINUX = 3, + /** + * @generated from enum value: CLIENT_OS_LINUX = 3; + */ + CLIENT_OS_LINUX = 3, } /** * Describes the enum agent.v1.ClientOS. */ -export const ClientOSSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 13); +export const ClientOSSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 13); /** * @generated from enum agent.v1.ArtifactUploadDispatchStatus */ export enum ArtifactUploadDispatchStatus { - /** - * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_ACCEPTED = 1; - */ - ACCEPTED = 1, + /** + * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_ACCEPTED = 1; + */ + ACCEPTED = 1, - /** - * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_REJECTED = 2; - */ - REJECTED = 2, + /** + * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_REJECTED = 2; + */ + REJECTED = 2, - /** - * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_SKIPPED_ALREADY_IN_PROGRESS = 3; - */ - SKIPPED_ALREADY_IN_PROGRESS = 3, + /** + * @generated from enum value: ARTIFACT_UPLOAD_DISPATCH_STATUS_SKIPPED_ALREADY_IN_PROGRESS = 3; + */ + SKIPPED_ALREADY_IN_PROGRESS = 3, } /** * Describes the enum agent.v1.ArtifactUploadDispatchStatus. */ -export const ArtifactUploadDispatchStatusSchema: GenEnum = - /*@__PURE__*/ - enumDesc(file_agent, 14); +export const ArtifactUploadDispatchStatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 14); /** * @generated from enum agent.v1.Frame_Kind */ export enum Frame_Kind { - /** - * @generated from enum value: KIND_UNSPECIFIED = 0; - */ - KIND_UNSPECIFIED = 0, + /** + * @generated from enum value: KIND_UNSPECIFIED = 0; + */ + KIND_UNSPECIFIED = 0, - /** - * @generated from enum value: KIND_REQUEST = 1; - */ - KIND_REQUEST = 1, + /** + * @generated from enum value: KIND_REQUEST = 1; + */ + KIND_REQUEST = 1, - /** - * @generated from enum value: KIND_RESPONSE = 2; - */ - KIND_RESPONSE = 2, + /** + * @generated from enum value: KIND_RESPONSE = 2; + */ + KIND_RESPONSE = 2, - /** - * @generated from enum value: KIND_ERROR = 3; - */ - KIND_ERROR = 3, + /** + * @generated from enum value: KIND_ERROR = 3; + */ + KIND_ERROR = 3, } /** * Describes the enum agent.v1.Frame_Kind. */ -export const Frame_KindSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 15); +export const Frame_KindSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 15); /** * @generated from enum agent.v1.BugbotDeeplinkEventKind */ export enum BugbotDeeplinkEventKind { - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_UNSPECIFIED = 0; - */ - UNSPECIFIED = 0, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_CLICKED = 1; - */ - CLICKED = 1, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_CLICKED = 1; + */ + CLICKED = 1, - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_DIALOG_SHOWN = 2; - */ - HANDLED_DIALOG_SHOWN = 2, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_DIALOG_SHOWN = 2; + */ + HANDLED_DIALOG_SHOWN = 2, - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_CHAT_CREATED = 3; - */ - HANDLED_CHAT_CREATED = 3, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_CHAT_CREATED = 3; + */ + HANDLED_CHAT_CREATED = 3, - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_ERROR = 4; - */ - ERROR = 4, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_ERROR = 4; + */ + ERROR = 4, - /** - * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_FIX_IN_WEB = 5; - */ - HANDLED_FIX_IN_WEB = 5, + /** + * @generated from enum value: BUGBOT_DEEPLINK_EVENT_KIND_HANDLED_FIX_IN_WEB = 5; + */ + HANDLED_FIX_IN_WEB = 5, } /** * Describes the enum agent.v1.BugbotDeeplinkEventKind. */ -export const BugbotDeeplinkEventKindSchema: GenEnum = /*@__PURE__*/ enumDesc(file_agent, 16); +export const BugbotDeeplinkEventKindSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 16); + +/** + * @generated from enum agent.v1.CommandClassifierResult_SuggestedSandboxMode + */ +export enum CommandClassifierResult_SuggestedSandboxMode { + /** + * @generated from enum value: SUGGESTED_SANDBOX_MODE_UNSPECIFIED = 0; + */ + SUGGESTED_SANDBOX_MODE_UNSPECIFIED = 0, + + /** + * @generated from enum value: SUGGESTED_SANDBOX_MODE_SANDBOX = 1; + */ + SUGGESTED_SANDBOX_MODE_SANDBOX = 1, + + /** + * @generated from enum value: SUGGESTED_SANDBOX_MODE_NO_SANDBOX = 2; + */ + SUGGESTED_SANDBOX_MODE_NO_SANDBOX = 2, + + /** + * @generated from enum value: SUGGESTED_SANDBOX_MODE_UNDETERMINED = 3; + */ + SUGGESTED_SANDBOX_MODE_UNDETERMINED = 3, +} + +/** + * Describes the enum agent.v1.CommandClassifierResult_SuggestedSandboxMode. + */ +export const CommandClassifierResult_SuggestedSandboxModeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 17); + +/** + * @generated from enum agent.v1.ShellHookApprovalRequirement_Kind + */ +export enum ShellHookApprovalRequirement_Kind { + /** + * @generated from enum value: SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_UNSPECIFIED = 0; + */ + SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_UNSPECIFIED = 0, + + /** + * @generated from enum value: SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_FORCE_PROMPT = 1; + */ + SHELL_HOOK_APPROVAL_REQUIREMENT_KIND_FORCE_PROMPT = 1, +} + +/** + * Describes the enum agent.v1.ShellHookApprovalRequirement_Kind. + */ +export const ShellHookApprovalRequirement_KindSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 18); + +/** + * @generated from enum agent.v1.ShellBackgroundReason + */ +export enum ShellBackgroundReason { + /** + * @generated from enum value: SHELL_BACKGROUND_REASON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: SHELL_BACKGROUND_REASON_TIMEOUT = 1; + */ + TIMEOUT = 1, + + /** + * @generated from enum value: SHELL_BACKGROUND_REASON_USER_REQUEST = 2; + */ + USER_REQUEST = 2, +} + +/** + * Describes the enum agent.v1.ShellBackgroundReason. + */ +export const ShellBackgroundReasonSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 19); + +/** + * @generated from enum agent.v1.ForceBackgroundShellStatus + */ +export enum ForceBackgroundShellStatus { + /** + * @generated from enum value: FORCE_BACKGROUND_SHELL_STATUS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: FORCE_BACKGROUND_SHELL_STATUS_ACCEPTED = 1; + */ + ACCEPTED = 1, + + /** + * @generated from enum value: FORCE_BACKGROUND_SHELL_STATUS_NOT_FOUND = 2; + */ + NOT_FOUND = 2, +} + +/** + * Describes the enum agent.v1.ForceBackgroundShellStatus. + */ +export const ForceBackgroundShellStatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 20); + +/** + * @generated from enum agent.v1.SubagentBackgroundReason + */ +export enum SubagentBackgroundReason { + /** + * @generated from enum value: SUBAGENT_BACKGROUND_REASON_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: SUBAGENT_BACKGROUND_REASON_AGENT_REQUEST = 1; + */ + AGENT_REQUEST = 1, + + /** + * @generated from enum value: SUBAGENT_BACKGROUND_REASON_USER_REQUEST = 2; + */ + USER_REQUEST = 2, + + /** + * @generated from enum value: SUBAGENT_BACKGROUND_REASON_QUEUED_FOLLOW_UP = 3; + */ + QUEUED_FOLLOW_UP = 3, +} + +/** + * Describes the enum agent.v1.SubagentBackgroundReason. + */ +export const SubagentBackgroundReasonSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 21); + +/** + * @generated from enum agent.v1.ForceBackgroundSubagentStatus + */ +export enum ForceBackgroundSubagentStatus { + /** + * @generated from enum value: FORCE_BACKGROUND_SUBAGENT_STATUS_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: FORCE_BACKGROUND_SUBAGENT_STATUS_ACCEPTED = 1; + */ + ACCEPTED = 1, + + /** + * @generated from enum value: FORCE_BACKGROUND_SUBAGENT_STATUS_NOT_FOUND = 2; + */ + NOT_FOUND = 2, +} + +/** + * Describes the enum agent.v1.ForceBackgroundSubagentStatus. + */ +export const ForceBackgroundSubagentStatusSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 22); + +/** + * @generated from enum agent.v1.SmartModeClassifierDecision + */ +export enum SmartModeClassifierDecision { + /** + * @generated from enum value: SMART_MODE_CLASSIFIER_DECISION_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: SMART_MODE_CLASSIFIER_DECISION_ALLOW = 1; + */ + ALLOW = 1, + + /** + * @generated from enum value: SMART_MODE_CLASSIFIER_DECISION_BLOCK = 2; + */ + BLOCK = 2, +} + +/** + * Describes the enum agent.v1.SmartModeClassifierDecision. + */ +export const SmartModeClassifierDecisionSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 23); + +/** + * @generated from enum agent.v1.ConversationSearchSource + */ +export enum ConversationSearchSource { + /** + * @generated from enum value: CONVERSATION_SEARCH_SOURCE_UNSPECIFIED = 0; + */ + UNSPECIFIED = 0, + + /** + * @generated from enum value: CONVERSATION_SEARCH_SOURCE_LOCAL = 1; + */ + LOCAL = 1, + + /** + * @generated from enum value: CONVERSATION_SEARCH_SOURCE_CLOUD_CACHE = 2; + */ + CLOUD_CACHE = 2, +} + +/** + * Describes the enum agent.v1.ConversationSearchSource. + */ +export const ConversationSearchSourceSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 24); + +/** + * @generated from enum agent.v1.GetDiffRequest_OutputFormat + */ +export enum GetDiffRequest_OutputFormat { + /** + * @generated from enum value: OUTPUT_FORMAT_UNSPECIFIED = 0; + */ + OUTPUT_FORMAT_UNSPECIFIED = 0, + + /** + * @generated from enum value: OUTPUT_FORMAT_NAME_STATUS = 1; + */ + OUTPUT_FORMAT_NAME_STATUS = 1, + + /** + * @generated from enum value: OUTPUT_FORMAT_NAME_STATUS_AND_NUMSTAT = 2; + */ + OUTPUT_FORMAT_NAME_STATUS_AND_NUMSTAT = 2, + + /** + * @generated from enum value: OUTPUT_FORMAT_FILE_DIFFS = 3; + */ + OUTPUT_FORMAT_FILE_DIFFS = 3, + + /** + * @generated from enum value: OUTPUT_FORMAT_DIFFS_WITH_BEFORE_AND_AFTER = 4; + */ + OUTPUT_FORMAT_DIFFS_WITH_BEFORE_AND_AFTER = 4, +} + +/** + * Describes the enum agent.v1.GetDiffRequest_OutputFormat. + */ +export const GetDiffRequest_OutputFormatSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 25); + +/** + * @generated from enum agent.v1.GitDiff_DiffType + */ +export enum GitDiff_DiffType { + /** + * @generated from enum value: DIFF_TYPE_UNSPECIFIED = 0; + */ + DIFF_TYPE_UNSPECIFIED = 0, + + /** + * @generated from enum value: DIFF_TYPE_DIFF_TO_HEAD = 1; + */ + DIFF_TYPE_DIFF_TO_HEAD = 1, + + /** + * @generated from enum value: DIFF_TYPE_DIFF_FROM_BRANCH_TO_MAIN = 2; + */ + DIFF_TYPE_DIFF_FROM_BRANCH_TO_MAIN = 2, +} + +/** + * Describes the enum agent.v1.GitDiff_DiffType. + */ +export const GitDiff_DiffTypeSchema: GenEnum = /*@__PURE__*/ + enumDesc(file_agent, 26); /** * Agent Service with bidirectional streaming @@ -15063,187 +18879,192 @@ export const BugbotDeeplinkEventKindSchema: GenEnum = / * @generated from service agent.v1.AgentService */ export const AgentService: GenService<{ - /** - * @generated from rpc agent.v1.AgentService.Run - */ - run: { - methodKind: "unary"; - input: typeof AgentClientMessageSchema; - output: typeof AgentServerMessageSchema; - }; - /** - * @generated from rpc agent.v1.AgentService.RunSSE - */ - runSSE: { - methodKind: "unary"; - input: typeof BidiRequestIdSchema; - output: typeof AgentServerMessageSchema; - }; - /** - * Generate a very short, succinct agent name from the provided user message. - * - * @generated from rpc agent.v1.AgentService.NameAgent - */ - nameAgent: { - methodKind: "unary"; - input: typeof NameAgentRequestSchema; - output: typeof NameAgentResponseSchema; - }; - /** - * @generated from rpc agent.v1.AgentService.GetUsableModels - */ - getUsableModels: { - methodKind: "unary"; - input: typeof GetUsableModelsRequestSchema; - output: typeof GetUsableModelsResponseSchema; - }; - /** - * @generated from rpc agent.v1.AgentService.GetDefaultModelForCli - */ - getDefaultModelForCli: { - methodKind: "unary"; - input: typeof GetDefaultModelForCliRequestSchema; - output: typeof GetDefaultModelForCliResponseSchema; - }; - /** - * Internal endpoint: returns all allowed model intents for devs - * - * @generated from rpc agent.v1.AgentService.GetAllowedModelIntents - */ - getAllowedModelIntents: { - methodKind: "unary"; - input: typeof GetAllowedModelIntentsRequestSchema; - output: typeof GetAllowedModelIntentsResponseSchema; - }; -}> = /*@__PURE__*/ serviceDesc(file_agent, 0); + /** + * @generated from rpc agent.v1.AgentService.Run + */ + run: { + methodKind: "unary"; + input: typeof AgentClientMessageSchema; + output: typeof AgentServerMessageSchema; + }, + /** + * @generated from rpc agent.v1.AgentService.RunSSE + */ + runSSE: { + methodKind: "unary"; + input: typeof BidiRequestIdSchema; + output: typeof AgentServerMessageSchema; + }, + /** + * Generate a very short, succinct agent name from the provided user message. + * + * @generated from rpc agent.v1.AgentService.NameAgent + */ + nameAgent: { + methodKind: "unary"; + input: typeof NameAgentRequestSchema; + output: typeof NameAgentResponseSchema; + }, + /** + * @generated from rpc agent.v1.AgentService.GetUsableModels + */ + getUsableModels: { + methodKind: "unary"; + input: typeof GetUsableModelsRequestSchema; + output: typeof GetUsableModelsResponseSchema; + }, + /** + * @generated from rpc agent.v1.AgentService.GetDefaultModelForCli + */ + getDefaultModelForCli: { + methodKind: "unary"; + input: typeof GetDefaultModelForCliRequestSchema; + output: typeof GetDefaultModelForCliResponseSchema; + }, + /** + * Internal endpoint: returns all allowed model intents for devs + * + * @generated from rpc agent.v1.AgentService.GetAllowedModelIntents + */ + getAllowedModelIntents: { + methodKind: "unary"; + input: typeof GetAllowedModelIntentsRequestSchema; + output: typeof GetAllowedModelIntentsResponseSchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_agent, 0); /** * @generated from service agent.v1.ControlService */ export const ControlService: GenService<{ - /** - * Spawn - * File read / write - * - * @generated from rpc agent.v1.ControlService.ReadTextFile - */ - readTextFile: { - methodKind: "unary"; - input: typeof ReadTextFileRequestSchema; - output: typeof ReadTextFileResponseSchema; - }; - /** - * @generated from rpc agent.v1.ControlService.WriteTextFile - */ - writeTextFile: { - methodKind: "unary"; - input: typeof WriteTextFileRequestSchema; - output: typeof WriteTextFileResponseSchema; - }; - /** - * Binary file read / write - * - * @generated from rpc agent.v1.ControlService.ReadBinaryFile - */ - readBinaryFile: { - methodKind: "unary"; - input: typeof ReadBinaryFileRequestSchema; - output: typeof ReadBinaryFileResponseSchema; - }; - /** - * @generated from rpc agent.v1.ControlService.WriteBinaryFile - */ - writeBinaryFile: { - methodKind: "unary"; - input: typeof WriteBinaryFileRequestSchema; - output: typeof WriteBinaryFileResponseSchema; - }; - /** - * Git - * - * @generated from rpc agent.v1.ControlService.GetWorkspaceChangesHash - */ - getWorkspaceChangesHash: { - methodKind: "unary"; - input: typeof GetWorkspaceChangesHashRequestSchema; - output: typeof GetWorkspaceChangesHashResponseSchema; - }; - /** - * @generated from rpc agent.v1.ControlService.RefreshGithubAccessToken - */ - refreshGithubAccessToken: { - methodKind: "unary"; - input: typeof RefreshGithubAccessTokenRequestSchema; - output: typeof RefreshGithubAccessTokenResponseSchema; - }; - /** - * Remote access - * - * @generated from rpc agent.v1.ControlService.WarmRemoteAccessServer - */ - warmRemoteAccessServer: { - methodKind: "unary"; - input: typeof WarmRemoteAccessServerRequestSchema; - output: typeof WarmRemoteAccessServerResponseSchema; - }; - /** - * Artifact uploads - * - * @generated from rpc agent.v1.ControlService.ListArtifacts - */ - listArtifacts: { - methodKind: "unary"; - input: typeof ListArtifactsRequestSchema; - output: typeof ListArtifactsResponseSchema; - }; - /** - * @generated from rpc agent.v1.ControlService.UploadArtifacts - */ - uploadArtifacts: { - methodKind: "unary"; - input: typeof UploadArtifactsRequestSchema; - output: typeof UploadArtifactsResponseSchema; - }; - /** - * @generated from rpc agent.v1.ControlService.GetMcpRefreshTokens - */ - getMcpRefreshTokens: { - methodKind: "unary"; - input: typeof GetMcpRefreshTokensRequestSchema; - output: typeof GetMcpRefreshTokensResponseSchema; - }; - /** - * Update the exec-daemon's environment variables for subsequent process spawns. This does NOT affect already-running processes. - * - * @generated from rpc agent.v1.ControlService.UpdateEnvironmentVariables - */ - updateEnvironmentVariables: { - methodKind: "unary"; - input: typeof UpdateEnvironmentVariablesRequestSchema; - output: typeof UpdateEnvironmentVariablesResponseSchema; - }; -}> = /*@__PURE__*/ serviceDesc(file_agent, 1); + /** + * Spawn + * File read / write + * + * @generated from rpc agent.v1.ControlService.ReadTextFile + */ + readTextFile: { + methodKind: "unary"; + input: typeof ReadTextFileRequestSchema; + output: typeof ReadTextFileResponseSchema; + }, + /** + * @generated from rpc agent.v1.ControlService.WriteTextFile + */ + writeTextFile: { + methodKind: "unary"; + input: typeof WriteTextFileRequestSchema; + output: typeof WriteTextFileResponseSchema; + }, + /** + * Binary file read / write + * + * @generated from rpc agent.v1.ControlService.ReadBinaryFile + */ + readBinaryFile: { + methodKind: "unary"; + input: typeof ReadBinaryFileRequestSchema; + output: typeof ReadBinaryFileResponseSchema; + }, + /** + * @generated from rpc agent.v1.ControlService.WriteBinaryFile + */ + writeBinaryFile: { + methodKind: "unary"; + input: typeof WriteBinaryFileRequestSchema; + output: typeof WriteBinaryFileResponseSchema; + }, + /** + * Git + * + * @generated from rpc agent.v1.ControlService.GetWorkspaceChangesHash + */ + getWorkspaceChangesHash: { + methodKind: "unary"; + input: typeof GetWorkspaceChangesHashRequestSchema; + output: typeof GetWorkspaceChangesHashResponseSchema; + }, + /** + * @generated from rpc agent.v1.ControlService.RefreshGithubAccessToken + */ + refreshGithubAccessToken: { + methodKind: "unary"; + input: typeof RefreshGithubAccessTokenRequestSchema; + output: typeof RefreshGithubAccessTokenResponseSchema; + }, + /** + * Remote access + * + * @generated from rpc agent.v1.ControlService.WarmRemoteAccessServer + */ + warmRemoteAccessServer: { + methodKind: "unary"; + input: typeof WarmRemoteAccessServerRequestSchema; + output: typeof WarmRemoteAccessServerResponseSchema; + }, + /** + * Artifact uploads + * + * @generated from rpc agent.v1.ControlService.ListArtifacts + */ + listArtifacts: { + methodKind: "unary"; + input: typeof ListArtifactsRequestSchema; + output: typeof ListArtifactsResponseSchema; + }, + /** + * @generated from rpc agent.v1.ControlService.UploadArtifacts + */ + uploadArtifacts: { + methodKind: "unary"; + input: typeof UploadArtifactsRequestSchema; + output: typeof UploadArtifactsResponseSchema; + }, + /** + * @generated from rpc agent.v1.ControlService.GetMcpRefreshTokens + */ + getMcpRefreshTokens: { + methodKind: "unary"; + input: typeof GetMcpRefreshTokensRequestSchema; + output: typeof GetMcpRefreshTokensResponseSchema; + }, + /** + * Update the exec-daemon's environment variables for subsequent process spawns. This does NOT affect already-running processes. + * + * @generated from rpc agent.v1.ControlService.UpdateEnvironmentVariables + */ + updateEnvironmentVariables: { + methodKind: "unary"; + input: typeof UpdateEnvironmentVariablesRequestSchema; + output: typeof UpdateEnvironmentVariablesResponseSchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_agent, 1); /** * Agent Service with unary RPC * * @generated from service agent.v1.ExecService */ -export const ExecService: GenService<{}> = /*@__PURE__*/ serviceDesc(file_agent, 2); +export const ExecService: GenService<{ +}> = /*@__PURE__*/ + serviceDesc(file_agent, 2); /** * @generated from service agent.v1.PrivateWorkerBridgeExternalService */ export const PrivateWorkerBridgeExternalService: GenService<{ - /** - * @generated from rpc agent.v1.PrivateWorkerBridgeExternalService.Connect - */ - connect: { - methodKind: "unary"; - input: typeof FrameSchema; - output: typeof FrameSchema; - }; -}> = /*@__PURE__*/ serviceDesc(file_agent, 3); + /** + * @generated from rpc agent.v1.PrivateWorkerBridgeExternalService.Connect + */ + connect: { + methodKind: "unary"; + input: typeof FrameSchema; + output: typeof FrameSchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_agent, 3); /** * LifecycleService is exposed by the bridge *client*, in addition to ExecService (tool calls) and ControlService (control operations "within the daemon"). It operates at a similar abstraction level as AnyrunService: it represents operations similar to creating a VM, checking out a repository, etc. @@ -15251,24 +19072,26 @@ export const PrivateWorkerBridgeExternalService: GenService<{ * @generated from service agent.v1.LifecycleService */ export const LifecycleService: GenService<{ - /** - * Resets a long-lived worker - * - * @generated from rpc agent.v1.LifecycleService.ResetInstance - */ - resetInstance: { - methodKind: "unary"; - input: typeof EmptySchema; - output: typeof EmptySchema; - }; - /** - * Asks worker to exit(0) so that a new worker can take his place - * - * @generated from rpc agent.v1.LifecycleService.RenewInstance - */ - renewInstance: { - methodKind: "unary"; - input: typeof EmptySchema; - output: typeof EmptySchema; - }; -}> = /*@__PURE__*/ serviceDesc(file_agent, 4); + /** + * Resets a long-lived worker + * + * @generated from rpc agent.v1.LifecycleService.ResetInstance + */ + resetInstance: { + methodKind: "unary"; + input: typeof EmptySchema; + output: typeof EmptySchema; + }, + /** + * Asks worker to exit(0) so that a new worker can take his place + * + * @generated from rpc agent.v1.LifecycleService.RenewInstance + */ + renewInstance: { + methodKind: "unary"; + input: typeof EmptySchema; + output: typeof EmptySchema; + }, +}> = /*@__PURE__*/ + serviceDesc(file_agent, 4); +