iterm2_ruby 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,267 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "socket"
4
+ require "securerandom"
5
+ require "base64"
6
+ require "open3"
7
+ require "thread"
8
+
9
+ module ITerm2
10
+ class Connection
11
+ SOCKET_PATH = File.expand_path("~/Library/Application Support/iTerm2/private/socket")
12
+ TCP_PORT = 1912
13
+
14
+ attr_reader :connected
15
+
16
+ def initialize(app_name: "iterm2_ruby")
17
+ @app_name = app_name
18
+ @id_counter = 0
19
+ @connected = false
20
+ @dispatch_active = false
21
+ @mutex = Mutex.new
22
+ @write_mutex = Mutex.new
23
+ @pending_responses = {}
24
+ @notification_callback = nil
25
+ @reader_thread = nil
26
+ connect!
27
+ end
28
+
29
+ # Send request, get response. Works in both sync and dispatch mode.
30
+ def rpc(request)
31
+ if @dispatch_active
32
+ rpc_dispatched(request)
33
+ else
34
+ rpc_sync(request)
35
+ end
36
+ end
37
+
38
+ def next_id
39
+ @mutex.synchronize { @id_counter += 1 }
40
+ end
41
+
42
+ # Start background reader thread for notification dispatch
43
+ def start_dispatch_loop!
44
+ return if @dispatch_active
45
+
46
+ @dispatch_active = true
47
+ @reader_thread = Thread.new { dispatch_loop }
48
+ @reader_thread.abort_on_exception = true
49
+ end
50
+
51
+ # Stop background reader thread cooperatively
52
+ def stop_dispatch_loop!
53
+ return unless @dispatch_active
54
+
55
+ @dispatch_active = false
56
+ # Close socket to unblock recv_binary — dispatch_loop rescues IOError and exits
57
+ @socket&.close rescue nil
58
+ @reader_thread&.join(2)
59
+ @reader_thread = nil
60
+
61
+ # Wake any blocked RPCs
62
+ @mutex.synchronize do
63
+ @pending_responses.each_value { |q| q.push(nil) }
64
+ @pending_responses.clear
65
+ end
66
+ end
67
+
68
+ def dispatch_active?
69
+ @dispatch_active
70
+ end
71
+
72
+ # Register callback for incoming notifications
73
+ def on_notification(&block)
74
+ @notification_callback = block
75
+ end
76
+
77
+ def close
78
+ if @dispatch_active
79
+ stop_dispatch_loop!
80
+ else
81
+ send_close if @socket && !@socket.closed?
82
+ @socket&.close rescue nil
83
+ end
84
+ @connected = false
85
+ end
86
+
87
+ # Make send_binary accessible for client to send subscription requests
88
+ # while dispatch loop handles recv
89
+ def send_request(request)
90
+ encoded = Proto::ClientOriginatedMessage.encode(request)
91
+ @write_mutex.synchronize { send_binary(encoded) }
92
+ end
93
+
94
+ private
95
+
96
+ # Synchronous RPC — original behavior, used when no dispatch loop
97
+ def rpc_sync(request)
98
+ encoded = Proto::ClientOriginatedMessage.encode(request)
99
+ @write_mutex.synchronize { send_binary(encoded) }
100
+ data = recv_binary
101
+ Proto::ServerOriginatedMessage.decode(data)
102
+ end
103
+
104
+ # Dispatch-mode RPC — register queue, send, wait for reader thread to deliver
105
+ def rpc_dispatched(request)
106
+ queue = Queue.new
107
+ request_id = request.id
108
+
109
+ @mutex.synchronize { @pending_responses[request_id] = queue }
110
+
111
+ encoded = Proto::ClientOriginatedMessage.encode(request)
112
+ @write_mutex.synchronize { send_binary(encoded) }
113
+
114
+ response = queue.pop
115
+ raise ConnectionError, "Connection closed during RPC" if response.nil?
116
+
117
+ response
118
+ ensure
119
+ @mutex.synchronize { @pending_responses.delete(request_id) }
120
+ end
121
+
122
+ # Background loop: read frames, dispatch to RPC queues or notification callback
123
+ def dispatch_loop
124
+ while @dispatch_active
125
+ data = recv_binary
126
+ msg = Proto::ServerOriginatedMessage.decode(data)
127
+
128
+ if msg.submessage == :notification
129
+ @notification_callback&.call(msg.notification)
130
+ else
131
+ # RPC response — deliver to waiting queue
132
+ queue = @mutex.synchronize { @pending_responses[msg.id] }
133
+ queue&.push(msg)
134
+ end
135
+ end
136
+ rescue IOError, EOFError, ConnectionError
137
+ # Socket closed — stop dispatching
138
+ @dispatch_active = false
139
+ end
140
+
141
+ def connect!
142
+ cookie, key = authenticate
143
+ @socket = open_socket
144
+ websocket_upgrade(cookie, key)
145
+ @connected = true
146
+ end
147
+
148
+ def authenticate
149
+ script = "tell application \"iTerm2\" to request cookie and key for app named \"#{@app_name}\""
150
+ stdout, status = Open3.capture2("osascript", "-e", script)
151
+ raise AuthError, "AppleScript auth failed: #{stdout}" unless status.success?
152
+
153
+ parts = stdout.strip.split(" ", 2)
154
+ raise AuthError, "Unexpected auth response: #{stdout}" unless parts.size == 2
155
+
156
+ parts
157
+ end
158
+
159
+ def open_socket
160
+ if File.socket?(SOCKET_PATH)
161
+ UNIXSocket.new(SOCKET_PATH)
162
+ else
163
+ TCPSocket.new("127.0.0.1", TCP_PORT)
164
+ end
165
+ rescue Errno::ECONNREFUSED, Errno::ENOENT => e
166
+ raise ConnectionError, "Cannot connect to iTerm2 API: #{e.message}. Is iTerm2 running with API enabled?"
167
+ end
168
+
169
+ def websocket_upgrade(cookie, key)
170
+ ws_key = Base64.strict_encode64(SecureRandom.random_bytes(16))
171
+
172
+ headers = [
173
+ "GET / HTTP/1.1",
174
+ "Host: localhost",
175
+ "Upgrade: websocket",
176
+ "Connection: Upgrade",
177
+ "Sec-WebSocket-Key: #{ws_key}",
178
+ "Sec-WebSocket-Version: 13",
179
+ "Sec-WebSocket-Protocol: api.iterm2.com",
180
+ "Origin: ws://localhost/",
181
+ "x-iterm2-cookie: #{cookie}",
182
+ "x-iterm2-key: #{key}",
183
+ "x-iterm2-library-version: ruby #{ITerm2::VERSION}",
184
+ "x-iterm2-advisory-name: #{@app_name}",
185
+ "x-iterm2-disable-auth-ui: true"
186
+ ]
187
+
188
+ @socket.write(headers.join("\r\n") + "\r\n\r\n")
189
+
190
+ response = read_http_response
191
+ unless response.start_with?("HTTP/1.1 101")
192
+ raise ConnectionError, "WebSocket upgrade failed: #{response.lines.first}"
193
+ end
194
+ end
195
+
196
+ def read_http_response
197
+ response = +""
198
+ loop do
199
+ line = @socket.gets
200
+ raise ConnectionError, "Connection closed during handshake" if line.nil?
201
+
202
+ response << line
203
+ break if line == "\r\n"
204
+ end
205
+ response
206
+ end
207
+
208
+ # WebSocket frame encoding (RFC 6455) - binary, client-masked
209
+ def send_binary(data)
210
+ frame = +""
211
+ frame << [0x82].pack("C") # FIN + opcode 2 (binary)
212
+
213
+ if data.bytesize < 126
214
+ frame << [data.bytesize | 0x80].pack("C")
215
+ elsif data.bytesize < 65_536
216
+ frame << [126 | 0x80].pack("C")
217
+ frame << [data.bytesize].pack("n")
218
+ else
219
+ frame << [127 | 0x80].pack("C")
220
+ frame << [data.bytesize].pack("Q>")
221
+ end
222
+
223
+ mask = SecureRandom.random_bytes(4)
224
+ frame << mask
225
+
226
+ masked = data.bytes.each_with_index.map { |b, i| b ^ mask.getbyte(i % 4) }
227
+ frame << masked.pack("C*")
228
+
229
+ @socket.write(frame)
230
+ end
231
+
232
+ # Read a single WebSocket frame, return payload
233
+ def recv_binary
234
+ first = @socket.read(2)
235
+ raise ConnectionError, "Connection closed" if first.nil? || first.bytesize < 2
236
+
237
+ second = first.getbyte(1)
238
+ masked = (second & 0x80) != 0
239
+ length = second & 0x7F
240
+
241
+ if length == 126
242
+ length = @socket.read(2).unpack1("n")
243
+ elsif length == 127
244
+ length = @socket.read(8).unpack1("Q>")
245
+ end
246
+
247
+ mask_key = masked ? @socket.read(4) : nil
248
+
249
+ payload = @socket.read(length)
250
+ raise ConnectionError, "Incomplete frame" if payload.nil? || payload.bytesize < length
251
+
252
+ if mask_key
253
+ payload = payload.bytes.each_with_index.map { |b, i| b ^ mask_key.getbyte(i % 4) }.pack("C*")
254
+ end
255
+
256
+ payload
257
+ end
258
+
259
+ def send_close
260
+ frame = [0x88, 0x80].pack("CC")
261
+ frame << SecureRandom.random_bytes(4)
262
+ @socket.write(frame)
263
+ rescue IOError, Errno::EPIPE
264
+ # Connection already dead
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,233 @@
1
+ # frozen_string_literal: true
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: api.proto
4
+
5
+ require 'google/protobuf'
6
+
7
+
8
+ descriptor_data = "\n\tapi.proto\x12\x06iterm2\"\xd9\x10\n\x17\x43lientOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x36\n\x12get_buffer_request\x18\x64 \x01(\x0b\x32\x18.iterm2.GetBufferRequestH\x00\x12\x36\n\x12get_prompt_request\x18\x65 \x01(\x0b\x32\x18.iterm2.GetPromptRequestH\x00\x12\x39\n\x13transaction_request\x18\x66 \x01(\x0b\x32\x1a.iterm2.TransactionRequestH\x00\x12;\n\x14notification_request\x18g \x01(\x0b\x32\x1b.iterm2.NotificationRequestH\x00\x12<\n\x15register_tool_request\x18h \x01(\x0b\x32\x1b.iterm2.RegisterToolRequestH\x00\x12I\n\x1cset_profile_property_request\x18i \x01(\x0b\x32!.iterm2.SetProfilePropertyRequestH\x00\x12<\n\x15list_sessions_request\x18j \x01(\x0b\x32\x1b.iterm2.ListSessionsRequestH\x00\x12\x34\n\x11send_text_request\x18k \x01(\x0b\x32\x17.iterm2.SendTextRequestH\x00\x12\x36\n\x12\x63reate_tab_request\x18l \x01(\x0b\x32\x18.iterm2.CreateTabRequestH\x00\x12\x36\n\x12split_pane_request\x18m \x01(\x0b\x32\x18.iterm2.SplitPaneRequestH\x00\x12I\n\x1cget_profile_property_request\x18n \x01(\x0b\x32!.iterm2.GetProfilePropertyRequestH\x00\x12:\n\x14set_property_request\x18o \x01(\x0b\x32\x1a.iterm2.SetPropertyRequestH\x00\x12:\n\x14get_property_request\x18p \x01(\x0b\x32\x1a.iterm2.GetPropertyRequestH\x00\x12/\n\x0einject_request\x18q \x01(\x0b\x32\x15.iterm2.InjectRequestH\x00\x12\x33\n\x10\x61\x63tivate_request\x18r \x01(\x0b\x32\x17.iterm2.ActivateRequestH\x00\x12\x33\n\x10variable_request\x18s \x01(\x0b\x32\x17.iterm2.VariableRequestH\x00\x12\x44\n\x19saved_arrangement_request\x18t \x01(\x0b\x32\x1f.iterm2.SavedArrangementRequestH\x00\x12-\n\rfocus_request\x18u \x01(\x0b\x32\x14.iterm2.FocusRequestH\x00\x12<\n\x15list_profiles_request\x18v \x01(\x0b\x32\x1b.iterm2.ListProfilesRequestH\x00\x12X\n$server_originated_rpc_result_request\x18w \x01(\x0b\x32(.iterm2.ServerOriginatedRPCResultRequestH\x00\x12@\n\x17restart_session_request\x18x \x01(\x0b\x32\x1d.iterm2.RestartSessionRequestH\x00\x12\x34\n\x11menu_item_request\x18y \x01(\x0b\x32\x17.iterm2.MenuItemRequestH\x00\x12=\n\x16set_tab_layout_request\x18z \x01(\x0b\x32\x1b.iterm2.SetTabLayoutRequestH\x00\x12K\n\x1dget_broadcast_domains_request\x18{ \x01(\x0b\x32\".iterm2.GetBroadcastDomainsRequestH\x00\x12+\n\x0ctmux_request\x18| \x01(\x0b\x32\x13.iterm2.TmuxRequestH\x00\x12:\n\x14reorder_tabs_request\x18} \x01(\x0b\x32\x1a.iterm2.ReorderTabsRequestH\x00\x12\x39\n\x13preferences_request\x18~ \x01(\x0b\x32\x1a.iterm2.PreferencesRequestH\x00\x12:\n\x14\x63olor_preset_request\x18\x7f \x01(\x0b\x32\x1a.iterm2.ColorPresetRequestH\x00\x12\x36\n\x11selection_request\x18\x80\x01 \x01(\x0b\x32\x18.iterm2.SelectionRequestH\x00\x12J\n\x1cstatus_bar_component_request\x18\x81\x01 \x01(\x0b\x32!.iterm2.StatusBarComponentRequestH\x00\x12L\n\x1dset_broadcast_domains_request\x18\x82\x01 \x01(\x0b\x32\".iterm2.SetBroadcastDomainsRequestH\x00\x12.\n\rclose_request\x18\x83\x01 \x01(\x0b\x32\x14.iterm2.CloseRequestH\x00\x12\x41\n\x17invoke_function_request\x18\x84\x01 \x01(\x0b\x32\x1d.iterm2.InvokeFunctionRequestH\x00\x12;\n\x14list_prompts_request\x18\x85\x01 \x01(\x0b\x32\x1a.iterm2.ListPromptsRequestH\x00\x42\x0c\n\nsubmessage\"\xdd\x11\n\x17ServerOriginatedMessage\x12\n\n\x02id\x18\x01 \x01(\x03\x12\x0f\n\x05\x65rror\x18\x02 \x01(\tH\x00\x12\x38\n\x13get_buffer_response\x18\x64 \x01(\x0b\x32\x19.iterm2.GetBufferResponseH\x00\x12\x38\n\x13get_prompt_response\x18\x65 \x01(\x0b\x32\x19.iterm2.GetPromptResponseH\x00\x12;\n\x14transaction_response\x18\x66 \x01(\x0b\x32\x1b.iterm2.TransactionResponseH\x00\x12=\n\x15notification_response\x18g \x01(\x0b\x32\x1c.iterm2.NotificationResponseH\x00\x12>\n\x16register_tool_response\x18h \x01(\x0b\x32\x1c.iterm2.RegisterToolResponseH\x00\x12K\n\x1dset_profile_property_response\x18i \x01(\x0b\x32\".iterm2.SetProfilePropertyResponseH\x00\x12>\n\x16list_sessions_response\x18j \x01(\x0b\x32\x1c.iterm2.ListSessionsResponseH\x00\x12\x36\n\x12send_text_response\x18k \x01(\x0b\x32\x18.iterm2.SendTextResponseH\x00\x12\x38\n\x13\x63reate_tab_response\x18l \x01(\x0b\x32\x19.iterm2.CreateTabResponseH\x00\x12\x38\n\x13split_pane_response\x18m \x01(\x0b\x32\x19.iterm2.SplitPaneResponseH\x00\x12K\n\x1dget_profile_property_response\x18n \x01(\x0b\x32\".iterm2.GetProfilePropertyResponseH\x00\x12<\n\x15set_property_response\x18o \x01(\x0b\x32\x1b.iterm2.SetPropertyResponseH\x00\x12<\n\x15get_property_response\x18p \x01(\x0b\x32\x1b.iterm2.GetPropertyResponseH\x00\x12\x31\n\x0finject_response\x18q \x01(\x0b\x32\x16.iterm2.InjectResponseH\x00\x12\x35\n\x11\x61\x63tivate_response\x18r \x01(\x0b\x32\x18.iterm2.ActivateResponseH\x00\x12\x35\n\x11variable_response\x18s \x01(\x0b\x32\x18.iterm2.VariableResponseH\x00\x12\x46\n\x1asaved_arrangement_response\x18t \x01(\x0b\x32 .iterm2.SavedArrangementResponseH\x00\x12/\n\x0e\x66ocus_response\x18u \x01(\x0b\x32\x15.iterm2.FocusResponseH\x00\x12>\n\x16list_profiles_response\x18v \x01(\x0b\x32\x1c.iterm2.ListProfilesResponseH\x00\x12Z\n%server_originated_rpc_result_response\x18w \x01(\x0b\x32).iterm2.ServerOriginatedRPCResultResponseH\x00\x12\x42\n\x18restart_session_response\x18x \x01(\x0b\x32\x1e.iterm2.RestartSessionResponseH\x00\x12\x36\n\x12menu_item_response\x18y \x01(\x0b\x32\x18.iterm2.MenuItemResponseH\x00\x12?\n\x17set_tab_layout_response\x18z \x01(\x0b\x32\x1c.iterm2.SetTabLayoutResponseH\x00\x12M\n\x1eget_broadcast_domains_response\x18{ \x01(\x0b\x32#.iterm2.GetBroadcastDomainsResponseH\x00\x12-\n\rtmux_response\x18| \x01(\x0b\x32\x14.iterm2.TmuxResponseH\x00\x12<\n\x15reorder_tabs_response\x18} \x01(\x0b\x32\x1b.iterm2.ReorderTabsResponseH\x00\x12;\n\x14preferences_response\x18~ \x01(\x0b\x32\x1b.iterm2.PreferencesResponseH\x00\x12<\n\x15\x63olor_preset_response\x18\x7f \x01(\x0b\x32\x1b.iterm2.ColorPresetResponseH\x00\x12\x38\n\x12selection_response\x18\x80\x01 \x01(\x0b\x32\x19.iterm2.SelectionResponseH\x00\x12L\n\x1dstatus_bar_component_response\x18\x81\x01 \x01(\x0b\x32\".iterm2.StatusBarComponentResponseH\x00\x12N\n\x1eset_broadcast_domains_response\x18\x82\x01 \x01(\x0b\x32#.iterm2.SetBroadcastDomainsResponseH\x00\x12\x30\n\x0e\x63lose_response\x18\x83\x01 \x01(\x0b\x32\x15.iterm2.CloseResponseH\x00\x12\x43\n\x18invoke_function_response\x18\x84\x01 \x01(\x0b\x32\x1e.iterm2.InvokeFunctionResponseH\x00\x12=\n\x15list_prompts_response\x18\x85\x01 \x01(\x0b\x32\x1b.iterm2.ListPromptsResponseH\x00\x12-\n\x0cnotification\x18\xe8\x07 \x01(\x0b\x32\x14.iterm2.NotificationH\x00\x42\x0c\n\nsubmessage\"\xcf\x03\n\x15InvokeFunctionRequest\x12\x30\n\x03tab\x18\x01 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.TabH\x00\x12\x38\n\x07session\x18\x02 \x01(\x0b\x32%.iterm2.InvokeFunctionRequest.SessionH\x00\x12\x36\n\x06window\x18\x03 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.WindowH\x00\x12\x30\n\x03\x61pp\x18\x04 \x01(\x0b\x32!.iterm2.InvokeFunctionRequest.AppH\x00\x12\x36\n\x06method\x18\x07 \x01(\x0b\x32$.iterm2.InvokeFunctionRequest.MethodH\x00\x12\x12\n\ninvocation\x18\x05 \x01(\t\x12\x13\n\x07timeout\x18\x06 \x01(\x01:\x02-1\x1a\x15\n\x03Tab\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\x1a\x1d\n\x07Session\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1a\x1b\n\x06Window\x12\x11\n\twindow_id\x18\x01 \x01(\t\x1a\x05\n\x03\x41pp\x1a\x1a\n\x06Method\x12\x10\n\x08receiver\x18\x01 \x01(\tB\t\n\x07\x63ontext\"\xd9\x02\n\x16InvokeFunctionResponse\x12\x35\n\x05\x65rror\x18\x01 \x01(\x0b\x32$.iterm2.InvokeFunctionResponse.ErrorH\x00\x12\x39\n\x07success\x18\x02 \x01(\x0b\x32&.iterm2.InvokeFunctionResponse.SuccessH\x00\x1aT\n\x05\x45rror\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.InvokeFunctionResponse.Status\x12\x14\n\x0c\x65rror_reason\x18\x02 \x01(\t\x1a\x1e\n\x07Success\x12\x13\n\x0bjson_result\x18\x01 \x01(\t\"H\n\x06Status\x12\x0b\n\x07TIMEOUT\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x12\x0e\n\nINVALID_ID\x10\x04\x42\r\n\x0b\x64isposition\"\xad\x02\n\x0c\x43loseRequest\x12.\n\x04tabs\x18\x01 \x01(\x0b\x32\x1e.iterm2.CloseRequest.CloseTabsH\x00\x12\x36\n\x08sessions\x18\x02 \x01(\x0b\x32\".iterm2.CloseRequest.CloseSessionsH\x00\x12\x34\n\x07windows\x18\x03 \x01(\x0b\x32!.iterm2.CloseRequest.CloseWindowsH\x00\x12\r\n\x05\x66orce\x18\x04 \x01(\x08\x1a\x1c\n\tCloseTabs\x12\x0f\n\x07tab_ids\x18\x01 \x03(\t\x1a$\n\rCloseSessions\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\x1a\"\n\x0c\x43loseWindows\x12\x12\n\nwindow_ids\x18\x01 \x03(\tB\x08\n\x06target\"s\n\rCloseResponse\x12.\n\x08statuses\x18\x01 \x03(\x0e\x32\x1c.iterm2.CloseResponse.Status\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\r\n\tNOT_FOUND\x10\x01\x12\x11\n\rUSER_DECLINED\x10\x02\"P\n\x1aSetBroadcastDomainsRequest\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\xc7\x01\n\x1bSetBroadcastDomainsResponse\x12:\n\x06status\x18\x01 \x01(\x0e\x32*.iterm2.SetBroadcastDomainsResponse.Status\"l\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\"\n\x1e\x42ROADCAST_DOMAINS_NOT_DISJOINT\x10\x02\x12\x1f\n\x1bSESSIONS_NOT_IN_SAME_WINDOW\x10\x03\"\xce\x01\n\x19StatusBarComponentRequest\x12\x45\n\x0copen_popover\x18\x01 \x01(\x0b\x32-.iterm2.StatusBarComponentRequest.OpenPopoverH\x00\x12\x12\n\nidentifier\x18\x02 \x01(\t\x1aK\n\x0bOpenPopover\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0c\n\x04html\x18\x02 \x01(\t\x12\x1a\n\x04size\x18\x03 \x01(\x0b\x32\x0c.iterm2.SizeB\t\n\x07request\"\xaf\x01\n\x1aStatusBarComponentResponse\x12\x39\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.StatusBarComponentResponse.Status\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12INVALID_IDENTIFIER\x10\x03\"]\n\x12WindowedCoordRange\x12\'\n\x0b\x63oord_range\x18\x01 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x1e\n\x07\x63olumns\x18\x02 \x01(\x0b\x32\r.iterm2.Range\"\x8a\x01\n\x0cSubSelection\x12\x38\n\x14windowed_coord_range\x18\x01 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\x12-\n\x0eselection_mode\x18\x02 \x01(\x0e\x32\x15.iterm2.SelectionMode\x12\x11\n\tconnected\x18\x03 \x01(\x08\"9\n\tSelection\x12,\n\x0esub_selections\x18\x01 \x03(\x0b\x32\x14.iterm2.SubSelection\"\xb7\x02\n\x10SelectionRequest\x12M\n\x15get_selection_request\x18\x01 \x01(\x0b\x32,.iterm2.SelectionRequest.GetSelectionRequestH\x00\x12M\n\x15set_selection_request\x18\x02 \x01(\x0b\x32,.iterm2.SelectionRequest.SetSelectionRequestH\x00\x1a)\n\x13GetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x1aO\n\x13SetSelectionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.SelectionB\t\n\x07request\"\x9c\x03\n\x11SelectionResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SelectionResponse.Status\x12P\n\x16get_selection_response\x18\x02 \x01(\x0b\x32..iterm2.SelectionResponse.GetSelectionResponseH\x00\x12P\n\x16set_selection_response\x18\x03 \x01(\x0b\x32..iterm2.SelectionResponse.SetSelectionResponseH\x00\x1a<\n\x14GetSelectionResponse\x12$\n\tselection\x18\x02 \x01(\x0b\x32\x11.iterm2.Selection\x1a\x16\n\x14SetSelectionResponse\"O\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_SESSION\x10\x01\x12\x11\n\rINVALID_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\x42\n\n\x08response\"\xc5\x01\n\x12\x43olorPresetRequest\x12>\n\x0clist_presets\x18\x01 \x01(\x0b\x32&.iterm2.ColorPresetRequest.ListPresetsH\x00\x12:\n\nget_preset\x18\x02 \x01(\x0b\x32$.iterm2.ColorPresetRequest.GetPresetH\x00\x1a\r\n\x0bListPresets\x1a\x19\n\tGetPreset\x12\x0c\n\x04name\x18\x01 \x01(\tB\t\n\x07request\"\xf4\x03\n\x13\x43olorPresetResponse\x12?\n\x0clist_presets\x18\x01 \x01(\x0b\x32\'.iterm2.ColorPresetResponse.ListPresetsH\x00\x12;\n\nget_preset\x18\x02 \x01(\x0b\x32%.iterm2.ColorPresetResponse.GetPresetH\x00\x12\x32\n\x06status\x18\x03 \x01(\x0e\x32\".iterm2.ColorPresetResponse.Status\x1a\x1b\n\x0bListPresets\x12\x0c\n\x04name\x18\x01 \x03(\t\x1a\xc2\x01\n\tGetPreset\x12J\n\x0e\x63olor_settings\x18\x01 \x03(\x0b\x32\x32.iterm2.ColorPresetResponse.GetPreset.ColorSetting\x1ai\n\x0c\x43olorSetting\x12\x0b\n\x03red\x18\x01 \x01(\x02\x12\r\n\x05green\x18\x02 \x01(\x02\x12\x0c\n\x04\x62lue\x18\x03 \x01(\x02\x12\r\n\x05\x61lpha\x18\x04 \x01(\x02\x12\x13\n\x0b\x63olor_space\x18\x05 \x01(\t\x12\x0b\n\x03key\x18\x06 \x01(\t\"=\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x14\n\x10PRESET_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x42\n\n\x08response\"\xcb\x04\n\x12PreferencesRequest\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesRequest.Request\x1a\xfe\x03\n\x07Request\x12R\n\x16set_preference_request\x18\x01 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.SetPreferenceH\x00\x12R\n\x16get_preference_request\x18\x02 \x01(\x0b\x32\x30.iterm2.PreferencesRequest.Request.GetPreferenceH\x00\x12[\n\x1bset_default_profile_request\x18\x03 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.SetDefaultProfileH\x00\x12[\n\x1bget_default_profile_request\x18\x04 \x01(\x0b\x32\x34.iterm2.PreferencesRequest.Request.GetDefaultProfileH\x00\x1a\x30\n\rSetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\x1a\x1c\n\rGetPreference\x12\x0b\n\x03key\x18\x01 \x01(\t\x1a!\n\x11SetDefaultProfile\x12\x0c\n\x04guid\x18\x01 \x01(\t\x1a\x13\n\x11GetDefaultProfileB\t\n\x07request\"\xbf\x07\n\x13PreferencesResponse\x12\x33\n\x07results\x18\x01 \x03(\x0b\x32\".iterm2.PreferencesResponse.Result\x1a\xf2\x06\n\x06Result\x12U\n\x14unrecognized_request\x18\x01 \x01(\x0b\x32\x35.iterm2.PreferencesResponse.Result.UnrecognizedResultH\x00\x12W\n\x15set_preference_result\x18\x02 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.SetPreferenceResultH\x00\x12W\n\x15get_preference_result\x18\x03 \x01(\x0b\x32\x36.iterm2.PreferencesResponse.Result.GetPreferenceResultH\x00\x12`\n\x1aset_default_profile_result\x18\x04 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.SetDefaultProfileResultH\x00\x12`\n\x1aget_default_profile_result\x18\x05 \x01(\x0b\x32:.iterm2.PreferencesResponse.Result.GetDefaultProfileResultH\x00\x1a\x97\x01\n\x13SetPreferenceResult\x12M\n\x06status\x18\x01 \x01(\x0e\x32=.iterm2.PreferencesResponse.Result.SetPreferenceResult.Status\"1\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_JSON\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x1a)\n\x13GetPreferenceResult\x12\x12\n\njson_value\x18\x01 \x01(\t\x1a\x8c\x01\n\x17SetDefaultProfileResult\x12Q\n\x06status\x18\x01 \x01(\x0e\x32\x41.iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status\"\x1e\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x01\x1a\x14\n\x12UnrecognizedResult\x1a\'\n\x17GetDefaultProfileResult\x12\x0c\n\x04guid\x18\x01 \x01(\tB\x08\n\x06result\"\x82\x01\n\x12ReorderTabsRequest\x12:\n\x0b\x61ssignments\x18\x03 \x03(\x0b\x32%.iterm2.ReorderTabsRequest.Assignment\x1a\x30\n\nAssignment\x12\x11\n\twindow_id\x18\x01 \x01(\t\x12\x0f\n\x07tab_ids\x18\x02 \x03(\t\"\x9e\x01\n\x13ReorderTabsResponse\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\".iterm2.ReorderTabsResponse.Status\"S\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x16\n\x12INVALID_ASSIGNMENT\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x12\n\x0eINVALID_TAB_ID\x10\x03\"\xe3\x03\n\x0bTmuxRequest\x12?\n\x10list_connections\x18\x01 \x01(\x0b\x32#.iterm2.TmuxRequest.ListConnectionsH\x00\x12\x37\n\x0csend_command\x18\x02 \x01(\x0b\x32\x1f.iterm2.TmuxRequest.SendCommandH\x00\x12\x42\n\x12set_window_visible\x18\x03 \x01(\x0b\x32$.iterm2.TmuxRequest.SetWindowVisibleH\x00\x12\x39\n\rcreate_window\x18\x04 \x01(\x0b\x32 .iterm2.TmuxRequest.CreateWindowH\x00\x1a\x11\n\x0fListConnections\x1a\x35\n\x0bSendCommand\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x1aM\n\x10SetWindowVisible\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0f\n\x07visible\x18\x03 \x01(\x08\x1a\x37\n\x0c\x43reateWindow\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x10\n\x08\x61\x66\x66inity\x18\x02 \x01(\tB\t\n\x07payload\"\x89\x05\n\x0cTmuxResponse\x12@\n\x10list_connections\x18\x01 \x01(\x0b\x32$.iterm2.TmuxResponse.ListConnectionsH\x00\x12\x38\n\x0csend_command\x18\x02 \x01(\x0b\x32 .iterm2.TmuxResponse.SendCommandH\x00\x12\x43\n\x12set_window_visible\x18\x03 \x01(\x0b\x32%.iterm2.TmuxResponse.SetWindowVisibleH\x00\x12:\n\rcreate_window\x18\x05 \x01(\x0b\x32!.iterm2.TmuxResponse.CreateWindowH\x00\x12+\n\x06status\x18\x04 \x01(\x0e\x32\x1b.iterm2.TmuxResponse.Status\x1a\x97\x01\n\x0fListConnections\x12\x44\n\x0b\x63onnections\x18\x01 \x03(\x0b\x32/.iterm2.TmuxResponse.ListConnections.Connection\x1a>\n\nConnection\x12\x15\n\rconnection_id\x18\x01 \x01(\t\x12\x19\n\x11owning_session_id\x18\x02 \x01(\t\x1a\x1d\n\x0bSendCommand\x12\x0e\n\x06output\x18\x01 \x01(\t\x1a\x12\n\x10SetWindowVisible\x1a\x1e\n\x0c\x43reateWindow\x12\x0e\n\x06tab_id\x18\x01 \x01(\t\"W\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x13\n\x0fINVALID_REQUEST\x10\x01\x12\x19\n\x15INVALID_CONNECTION_ID\x10\x02\x12\x15\n\x11INVALID_WINDOW_ID\x10\x03\x42\t\n\x07payload\"\x1c\n\x1aGetBroadcastDomainsRequest\"&\n\x0f\x42roadcastDomain\x12\x13\n\x0bsession_ids\x18\x01 \x03(\t\"Q\n\x1bGetBroadcastDomainsResponse\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"J\n\x13SetTabLayoutRequest\x12#\n\x04root\x18\x01 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\"\x8f\x01\n\x14SetTabLayoutResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.SetTabLayoutResponse.Status\"B\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nBAD_TAB_ID\x10\x01\x12\x0e\n\nWRONG_TREE\x10\x02\x12\x10\n\x0cINVALID_SIZE\x10\x03\"9\n\x0fMenuItemRequest\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12\x12\n\nquery_only\x18\x02 \x01(\x08\"\x99\x01\n\x10MenuItemResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.MenuItemResponse.Status\x12\x0f\n\x07\x63hecked\x18\x02 \x01(\x08\x12\x0f\n\x07\x65nabled\x18\x03 \x01(\x08\"2\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x0c\n\x08\x44ISABLED\x10\x02\"C\n\x15RestartSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x16\n\x0eonly_if_exited\x18\x02 \x01(\x08\"\x95\x01\n\x16RestartSessionResponse\x12\x35\n\x06status\x18\x01 \x01(\x0e\x32%.iterm2.RestartSessionResponse.Status\"D\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x1b\n\x17SESSION_NOT_RESTARTABLE\x10\x02\"p\n ServerOriginatedRPCResultRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x18\n\x0ejson_exception\x18\x02 \x01(\tH\x00\x12\x14\n\njson_value\x18\x03 \x01(\tH\x00\x42\x08\n\x06result\"#\n!ServerOriginatedRPCResultResponse\"8\n\x13ListProfilesRequest\x12\x12\n\nproperties\x18\x01 \x03(\t\x12\r\n\x05guids\x18\x02 \x03(\t\"\x86\x01\n\x14ListProfilesResponse\x12\x36\n\x08profiles\x18\x01 \x03(\x0b\x32$.iterm2.ListProfilesResponse.Profile\x1a\x36\n\x07Profile\x12+\n\nproperties\x18\x01 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\x0e\n\x0c\x46ocusRequest\"H\n\rFocusResponse\x12\x37\n\rnotifications\x18\x01 \x03(\x0b\x32 .iterm2.FocusChangedNotification\"\x9d\x01\n\x17SavedArrangementRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x36\n\x06\x61\x63tion\x18\x02 \x01(\x0e\x32&.iterm2.SavedArrangementRequest.Action\x12\x11\n\twindow_id\x18\x03 \x01(\t\")\n\x06\x41\x63tion\x12\x0b\n\x07RESTORE\x10\x00\x12\x08\n\x04SAVE\x10\x01\x12\x08\n\x04LIST\x10\x02\"\xbc\x01\n\x18SavedArrangementResponse\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\'.iterm2.SavedArrangementResponse.Status\x12\r\n\x05names\x18\x02 \x03(\t\"X\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x19\n\x15\x41RRANGEMENT_NOT_FOUND\x10\x01\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"\xc1\x01\n\x0fVariableRequest\x12\x14\n\nsession_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x04 \x01(\tH\x00\x12\r\n\x03\x61pp\x18\x05 \x01(\x08H\x00\x12\x13\n\twindow_id\x18\x06 \x01(\tH\x00\x12(\n\x03set\x18\x02 \x03(\x0b\x32\x1b.iterm2.VariableRequest.Set\x12\x0b\n\x03get\x18\x03 \x03(\t\x1a\"\n\x03Set\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\tB\x07\n\x05scope\"\xe5\x01\n\x10VariableResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.VariableResponse.Status\x12\x0e\n\x06values\x18\x02 \x03(\t\"\x8f\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x10\n\x0cINVALID_NAME\x10\x02\x12\x11\n\rMISSING_SCOPE\x10\x03\x12\x11\n\rTAB_NOT_FOUND\x10\x04\x12\x18\n\x14MULTI_GET_DISALLOWED\x10\x05\x12\x14\n\x10WINDOW_NOT_FOUND\x10\x06\"\x96\x02\n\x0f\x41\x63tivateRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x10\n\x06tab_id\x18\x02 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x1a\n\x12order_window_front\x18\x04 \x01(\x08\x12\x12\n\nselect_tab\x18\x05 \x01(\x08\x12\x16\n\x0eselect_session\x18\x06 \x01(\x08\x12\x31\n\x0c\x61\x63tivate_app\x18\x07 \x01(\x0b\x32\x1b.iterm2.ActivateRequest.App\x1a=\n\x03\x41pp\x12\x19\n\x11raise_all_windows\x18\x01 \x01(\x08\x12\x1b\n\x13ignoring_other_apps\x18\x02 \x01(\x08\x42\x0c\n\nidentifier\"}\n\x10\x41\x63tivateResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.ActivateResponse.Status\"8\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0e\x42\x41\x44_IDENTIFIER\x10\x01\x12\x12\n\x0eINVALID_OPTION\x10\x02\"1\n\rInjectRequest\x12\x12\n\nsession_id\x18\x01 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"h\n\x0eInjectResponse\x12-\n\x06status\x18\x01 \x03(\x0e\x32\x1d.iterm2.InjectResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"[\n\x12GetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x03 \x01(\tH\x00\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0c\n\nidentifier\"\x9a\x01\n\x13GetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.GetPropertyResponse.Status\x12\x12\n\njson_value\x18\x02 \x01(\t\";\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x12\n\x0eINVALID_TARGET\x10\x02\"o\n\x12SetPropertyRequest\x12\x13\n\twindow_id\x18\x01 \x01(\tH\x00\x12\x14\n\nsession_id\x18\x05 \x01(\tH\x00\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\tB\x0c\n\nidentifier\"\xc3\x01\n\x13SetPropertyResponse\x12\x32\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.SetPropertyResponse.Status\"x\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11UNRECOGNIZED_NAME\x10\x01\x12\x11\n\rINVALID_VALUE\x10\x02\x12\x12\n\x0eINVALID_TARGET\x10\x03\x12\x0c\n\x08\x44\x45\x46\x45RRED\x10\x04\x12\x0e\n\nIMPOSSIBLE\x10\x05\x12\n\n\x06\x46\x41ILED\x10\x06\"\xd8\x01\n\x13RegisterToolRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12+\n\x1creveal_if_already_registered\x18\x05 \x01(\x08:\x05\x66\x61lse\x12\x46\n\ttool_type\x18\x03 \x01(\x0e\x32$.iterm2.RegisterToolRequest.ToolType:\rWEB_VIEW_TOOL\x12\x0b\n\x03URL\x18\x04 \x01(\t\"\x1d\n\x08ToolType\x12\x11\n\rWEB_VIEW_TOOL\x10\x01\"\xdf\x0c\n\x16RPCRegistrationRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x46\n\targuments\x18\x02 \x03(\x0b\x32\x33.iterm2.RPCRegistrationRequest.RPCArgumentSignature\x12<\n\x08\x64\x65\x66\x61ults\x18\x04 \x03(\x0b\x32*.iterm2.RPCRegistrationRequest.RPCArgument\x12\x0f\n\x07timeout\x18\x03 \x01(\x02\x12:\n\x04role\x18\x05 \x01(\x0e\x32#.iterm2.RPCRegistrationRequest.Role:\x07GENERIC\x12Y\n\x18session_title_attributes\x18\x07 \x01(\x0b\x32\x35.iterm2.RPCRegistrationRequest.SessionTitleAttributesH\x00\x12\x66\n\x1fstatus_bar_component_attributes\x18\x08 \x01(\x0b\x32;.iterm2.RPCRegistrationRequest.StatusBarComponentAttributesH\x00\x12W\n\x17\x63ontext_menu_attributes\x18\t \x01(\x0b\x32\x34.iterm2.RPCRegistrationRequest.ContextMenuAttributesH\x00\x12\x18\n\x0c\x64isplay_name\x18\x06 \x01(\tB\x02\x18\x01\x1a$\n\x14RPCArgumentSignature\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a)\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x1aI\n\x16SessionTitleAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x1a\xd9\x05\n\x1cStatusBarComponentAttributes\x12\x19\n\x11short_description\x18\x01 \x01(\t\x12\x1c\n\x14\x64\x65tailed_description\x18\x02 \x01(\t\x12O\n\x05knobs\x18\x03 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob\x12\x10\n\x08\x65xemplar\x18\x04 \x01(\t\x12\x16\n\x0eupdate_cadence\x18\x05 \x01(\x02\x12\x19\n\x11unique_identifier\x18\x06 \x01(\t\x12O\n\x05icons\x18\x07 \x03(\x0b\x32@.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon\x12^\n\x06\x66ormat\x18\x08 \x01(\x0e\x32\x42.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format:\nPLAIN_TEXT\x1a\xef\x01\n\x04Knob\x12\x0c\n\x04name\x18\x01 \x01(\t\x12S\n\x04type\x18\x02 \x01(\x0e\x32\x45.iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type\x12\x13\n\x0bplaceholder\x18\x03 \x01(\t\x12\x1a\n\x12json_default_value\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\t\"F\n\x04Type\x12\x0c\n\x08\x43heckbox\x10\x01\x12\n\n\x06String\x10\x02\x12\x19\n\x15PositiveFloatingPoint\x10\x03\x12\t\n\x05\x43olor\x10\x04\x1a#\n\x04Icon\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\r\n\x05scale\x18\x02 \x01(\x02\"\"\n\x06\x46ormat\x12\x0e\n\nPLAIN_TEXT\x10\x00\x12\x08\n\x04HTML\x10\x01\x1aH\n\x15\x43ontextMenuAttributes\x12\x14\n\x0c\x64isplay_name\x18\x01 \x01(\t\x12\x19\n\x11unique_identifier\x18\x02 \x01(\t\"R\n\x04Role\x12\x0b\n\x07GENERIC\x10\x01\x12\x11\n\rSESSION_TITLE\x10\x02\x12\x18\n\x14STATUS_BAR_COMPONENT\x10\x03\x12\x10\n\x0c\x43ONTEXT_MENU\x10\x04\x42\x18\n\x16RoleSpecificAttributes\"\x8b\x01\n\x14RegisterToolResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.RegisterToolResponse.Status\">\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11REQUEST_MALFORMED\x10\x01\x12\x15\n\x11PERMISSION_DENIED\x10\x02\"\xbe\x01\n\x10KeystrokePattern\x12-\n\x12required_modifiers\x18\x01 \x03(\x0e\x32\x11.iterm2.Modifiers\x12.\n\x13\x66orbidden_modifiers\x18\x02 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x10\n\x08keycodes\x18\x03 \x03(\x05\x12\x12\n\ncharacters\x18\x04 \x03(\t\x12%\n\x1d\x63haracters_ignoring_modifiers\x18\x05 \x03(\t\"e\n\x17KeystrokeMonitorRequest\x12\x38\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePatternB\x02\x18\x01\x12\x10\n\x08\x61\x64vanced\x18\x02 \x01(\x08\"N\n\x16KeystrokeFilterRequest\x12\x34\n\x12patterns_to_ignore\x18\x01 \x03(\x0b\x32\x18.iterm2.KeystrokePattern\"`\n\x16VariableMonitorRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\x05scope\x18\x02 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x03 \x01(\t\"$\n\x14ProfileChangeRequest\x12\x0c\n\x04guid\x18\x01 \x01(\t\"@\n\x14PromptMonitorRequest\x12(\n\x05modes\x18\x01 \x03(\x0e\x32\x19.iterm2.PromptMonitorMode\"\x8d\x04\n\x13NotificationRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x11\n\tsubscribe\x18\x02 \x01(\x08\x12\x33\n\x11notification_type\x18\x03 \x01(\x0e\x32\x18.iterm2.NotificationType\x12\x42\n\x18rpc_registration_request\x18\x04 \x01(\x0b\x32\x1e.iterm2.RPCRegistrationRequestH\x00\x12\x44\n\x19keystroke_monitor_request\x18\x05 \x01(\x0b\x32\x1f.iterm2.KeystrokeMonitorRequestH\x00\x12\x42\n\x18variable_monitor_request\x18\x06 \x01(\x0b\x32\x1e.iterm2.VariableMonitorRequestH\x00\x12>\n\x16profile_change_request\x18\x07 \x01(\x0b\x32\x1c.iterm2.ProfileChangeRequestH\x00\x12\x42\n\x18keystroke_filter_request\x18\x08 \x01(\x0b\x32\x1e.iterm2.KeystrokeFilterRequestH\x00\x12>\n\x16prompt_monitor_request\x18\t \x01(\x0b\x32\x1c.iterm2.PromptMonitorRequestH\x00\x42\x0b\n\targuments\"\xf5\x01\n\x14NotificationResponse\x12\x33\n\x06status\x18\x01 \x01(\x0e\x32#.iterm2.NotificationResponse.Status\"\xa7\x01\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x12\n\x0eNOT_SUBSCRIBED\x10\x03\x12\x16\n\x12\x41LREADY_SUBSCRIBED\x10\x04\x12#\n\x1f\x44UPLICATE_SERVER_ORIGINATED_RPC\x10\x05\x12\x16\n\x12INVALID_IDENTIFIER\x10\x06\"\xca\x07\n\x0cNotification\x12=\n\x16keystroke_notification\x18\x01 \x01(\x0b\x32\x1d.iterm2.KeystrokeNotification\x12\x44\n\x1ascreen_update_notification\x18\x02 \x01(\x0b\x32 .iterm2.ScreenUpdateNotification\x12\x37\n\x13prompt_notification\x18\x03 \x01(\x0b\x32\x1a.iterm2.PromptNotification\x12L\n\x1clocation_change_notification\x18\x04 \x01(\x0b\x32\".iterm2.LocationChangeNotificationB\x02\x18\x01\x12U\n#custom_escape_sequence_notification\x18\x05 \x01(\x0b\x32(.iterm2.CustomEscapeSequenceNotification\x12@\n\x18new_session_notification\x18\x06 \x01(\x0b\x32\x1e.iterm2.NewSessionNotification\x12L\n\x1eterminate_session_notification\x18\x07 \x01(\x0b\x32$.iterm2.TerminateSessionNotification\x12\x46\n\x1blayout_changed_notification\x18\x08 \x01(\x0b\x32!.iterm2.LayoutChangedNotification\x12\x44\n\x1a\x66ocus_changed_notification\x18\t \x01(\x0b\x32 .iterm2.FocusChangedNotification\x12S\n\"server_originated_rpc_notification\x18\n \x01(\x0b\x32\'.iterm2.ServerOriginatedRPCNotification\x12N\n\x19\x62roadcast_domains_changed\x18\x0b \x01(\x0b\x32+.iterm2.BroadcastDomainsChangedNotification\x12J\n\x1dvariable_changed_notification\x18\x0c \x01(\x0b\x32#.iterm2.VariableChangedNotification\x12H\n\x1cprofile_changed_notification\x18\r \x01(\x0b\x32\".iterm2.ProfileChangedNotification\"*\n\x1aProfileChangedNotification\x12\x0c\n\x04guid\x18\x01 \x01(\t\"}\n\x1bVariableChangedNotification\x12$\n\x05scope\x18\x01 \x01(\x0e\x32\x15.iterm2.VariableScope\x12\x12\n\nidentifier\x18\x02 \x01(\t\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x16\n\x0ejson_new_value\x18\x04 \x01(\t\"Y\n#BroadcastDomainsChangedNotification\x12\x32\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32\x17.iterm2.BroadcastDomain\"\x90\x01\n\x13ServerOriginatedRPC\x12\x0c\n\x04name\x18\x02 \x01(\t\x12:\n\targuments\x18\x03 \x03(\x0b\x32\'.iterm2.ServerOriginatedRPC.RPCArgument\x1a/\n\x0bRPCArgument\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"_\n\x1fServerOriginatedRPCNotification\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12(\n\x03rpc\x18\x02 \x01(\x0b\x32\x1b.iterm2.ServerOriginatedRPC\"\x85\x02\n\x15KeystrokeNotification\x12\x12\n\ncharacters\x18\x01 \x01(\t\x12#\n\x1b\x63haractersIgnoringModifiers\x18\x02 \x01(\t\x12$\n\tmodifiers\x18\x03 \x03(\x0e\x32\x11.iterm2.Modifiers\x12\x0f\n\x07keyCode\x18\x04 \x01(\x05\x12\x0f\n\x07session\x18\x05 \x01(\t\x12\x34\n\x06\x61\x63tion\x18\x06 \x01(\x0e\x32$.iterm2.KeystrokeNotification.Action\"5\n\x06\x41\x63tion\x12\x0c\n\x08KEY_DOWN\x10\x00\x12\n\n\x06KEY_UP\x10\x01\x12\x11\n\rFLAGS_CHANGED\x10\x02\"+\n\x18ScreenUpdateNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\"Z\n\x18PromptNotificationPrompt\x12\x13\n\x0bplaceholder\x18\x01 \x01(\t\x12)\n\x06prompt\x18\x02 \x01(\x0b\x32\x19.iterm2.GetPromptResponse\"1\n\x1ePromptNotificationCommandStart\x12\x0f\n\x07\x63ommand\x18\x01 \x01(\t\".\n\x1cPromptNotificationCommandEnd\x12\x0e\n\x06status\x18\x01 \x01(\x05\"\xfa\x01\n\x12PromptNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x32\n\x06prompt\x18\x02 \x01(\x0b\x32 .iterm2.PromptNotificationPromptH\x00\x12?\n\rcommand_start\x18\x03 \x01(\x0b\x32&.iterm2.PromptNotificationCommandStartH\x00\x12;\n\x0b\x63ommand_end\x18\x04 \x01(\x0b\x32$.iterm2.PromptNotificationCommandEndH\x00\x12\x18\n\x10unique_prompt_id\x18\x05 \x01(\tB\x07\n\x05\x65vent\"f\n\x1aLocationChangeNotification\x12\x11\n\thost_name\x18\x01 \x01(\t\x12\x11\n\tuser_name\x18\x02 \x01(\t\x12\x11\n\tdirectory\x18\x03 \x01(\t\x12\x0f\n\x07session\x18\x04 \x01(\t\"]\n CustomEscapeSequenceNotification\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0fsender_identity\x18\x02 \x01(\t\x12\x0f\n\x07payload\x18\x03 \x01(\t\",\n\x16NewSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"\x84\x03\n\x18\x46ocusChangedNotification\x12\x1c\n\x12\x61pplication_active\x18\x01 \x01(\x08H\x00\x12\x39\n\x06window\x18\x02 \x01(\x0b\x32\'.iterm2.FocusChangedNotification.WindowH\x00\x12\x16\n\x0cselected_tab\x18\x03 \x01(\tH\x00\x12\x11\n\x07session\x18\x04 \x01(\tH\x00\x1a\xda\x01\n\x06Window\x12K\n\rwindow_status\x18\x01 \x01(\x0e\x32\x34.iterm2.FocusChangedNotification.Window.WindowStatus\x12\x11\n\twindow_id\x18\x02 \x01(\t\"p\n\x0cWindowStatus\x12\x1e\n\x1aTERMINAL_WINDOW_BECAME_KEY\x10\x00\x12\x1e\n\x1aTERMINAL_WINDOW_IS_CURRENT\x10\x01\x12 \n\x1cTERMINAL_WINDOW_RESIGNED_KEY\x10\x02\x42\x07\n\x05\x65vent\"2\n\x1cTerminateSessionNotification\x12\x12\n\nsession_id\x18\x01 \x01(\t\"Y\n\x19LayoutChangedNotification\x12<\n\x16list_sessions_response\x18\x01 \x01(\x0b\x32\x1c.iterm2.ListSessionsResponse\"b\n\x10GetBufferRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12%\n\nline_range\x18\x02 \x01(\x0b\x32\x11.iterm2.LineRange\x12\x16\n\x0einclude_styles\x18\x03 \x01(\x08\"\xe8\x02\n\x11GetBufferResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetBufferResponse.Status:\x02OK\x12 \n\x05range\x18\x02 \x01(\x0b\x32\r.iterm2.RangeB\x02\x18\x01\x12&\n\x08\x63ontents\x18\x03 \x03(\x0b\x32\x14.iterm2.LineContents\x12\x1d\n\x06\x63ursor\x18\x04 \x01(\x0b\x32\r.iterm2.Coord\x12\"\n\x16num_lines_above_screen\x18\x05 \x01(\x03\x42\x02\x18\x01\x12\x38\n\x14windowed_coord_range\x18\x06 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x16\n\x12INVALID_LINE_RANGE\x10\x02\x12\x15\n\x11REQUEST_MALFORMED\x10\x03\"=\n\x10GetPromptRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x18\n\x10unique_prompt_id\x18\x02 \x01(\t\"\xe3\x03\n\x11GetPromptResponse\x12\x34\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.GetPromptResponse.Status:\x02OK\x12(\n\x0cprompt_range\x18\x02 \x01(\x0b\x32\x12.iterm2.CoordRange\x12)\n\rcommand_range\x18\x03 \x01(\x0b\x32\x12.iterm2.CoordRange\x12(\n\x0coutput_range\x18\x04 \x01(\x0b\x32\x12.iterm2.CoordRange\x12\x19\n\x11working_directory\x18\x05 \x01(\t\x12\x0f\n\x07\x63ommand\x18\x06 \x01(\t\x12\x35\n\x0cprompt_state\x18\x07 \x01(\x0e\x32\x1f.iterm2.GetPromptResponse.State\x12\x13\n\x0b\x65xit_status\x18\t \x01(\r\x12\x18\n\x10unique_prompt_id\x18\n \x01(\t\"V\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x16\n\x12PROMPT_UNAVAILABLE\x10\x03\"/\n\x05State\x12\x0b\n\x07\x45\x44ITING\x10\x00\x12\x0b\n\x07RUNNING\x10\x01\x12\x0c\n\x08\x46INISHED\x10\x02\"V\n\x12ListPromptsRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x17\n\x0f\x66irst_unique_id\x18\x02 \x01(\t\x12\x16\n\x0elast_unique_id\x18\x03 \x01(\t\"\x90\x01\n\x13ListPromptsResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.ListPromptsResponse.Status:\x02OK\x12\x18\n\x10unique_prompt_id\x18\x02 \x03(\t\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\":\n\x19GetProfilePropertyRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04keys\x18\x02 \x03(\t\"2\n\x0fProfileProperty\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\t\"\xd3\x01\n\x1aGetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.GetProfilePropertyResponse.Status:\x02OK\x12+\n\nproperties\x18\x03 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"I\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\t\n\x05\x45RROR\x10\x03\"\xa7\x02\n\x19SetProfilePropertyRequest\x12\x11\n\x07session\x18\x01 \x01(\tH\x00\x12?\n\tguid_list\x18\x02 \x01(\x0b\x32*.iterm2.SetProfilePropertyRequest.GuidListH\x00\x12\x0b\n\x03key\x18\x03 \x01(\t\x12\x12\n\njson_value\x18\x04 \x01(\t\x12\x41\n\x0b\x61ssignments\x18\x05 \x03(\x0b\x32,.iterm2.SetProfilePropertyRequest.Assignment\x1a\x19\n\x08GuidList\x12\r\n\x05guids\x18\x01 \x03(\t\x1a-\n\nAssignment\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x12\n\njson_value\x18\x02 \x01(\tB\x08\n\x06target\"\xa9\x01\n\x1aSetProfilePropertyResponse\x12=\n\x06status\x18\x01 \x01(\x0e\x32).iterm2.SetProfilePropertyResponse.Status:\x02OK\"L\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x15\n\x11REQUEST_MALFORMED\x10\x02\x12\x0c\n\x08\x42\x41\x44_GUID\x10\x03\"#\n\x12TransactionRequest\x12\r\n\x05\x62\x65gin\x18\x01 \x01(\x08\"\x8f\x01\n\x13TransactionResponse\x12\x36\n\x06status\x18\x01 \x01(\x0e\x32\".iterm2.TransactionResponse.Status:\x02OK\"@\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x12\n\x0eNO_TRANSACTION\x10\x01\x12\x1a\n\x16\x41LREADY_IN_TRANSACTION\x10\x02\"{\n\tLineRange\x12\x1c\n\x14screen_contents_only\x18\x01 \x01(\x08\x12\x16\n\x0etrailing_lines\x18\x02 \x01(\x05\x12\x38\n\x14windowed_coord_range\x18\x03 \x01(\x0b\x32\x1a.iterm2.WindowedCoordRange\")\n\x05Range\x12\x10\n\x08location\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"F\n\nCoordRange\x12\x1c\n\x05start\x18\x01 \x01(\x0b\x32\r.iterm2.Coord\x12\x1a\n\x03\x65nd\x18\x02 \x01(\x0b\x32\r.iterm2.Coord\"\x1d\n\x05\x43oord\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x03\"4\n\x08RGBColor\x12\x0b\n\x03red\x18\x01 \x01(\r\x12\r\n\x05green\x18\x02 \x01(\r\x12\x0c\n\x04\x62lue\x18\x03 \x01(\r\"&\n\x03URL\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nidentifier\x18\x02 \x01(\t\"\xe1\x04\n\tCellStyle\x12\x14\n\nfgStandard\x18\x01 \x01(\rH\x00\x12-\n\x0b\x66gAlternate\x18\x02 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x00\x12!\n\x05\x66gRgb\x18\x03 \x01(\x0b\x32\x10.iterm2.RGBColorH\x00\x12\x1f\n\x15\x66gAlternatePlacementX\x18\x04 \x01(\rH\x00\x12\x14\n\nbgStandard\x18\x05 \x01(\rH\x01\x12-\n\x0b\x62gAlternate\x18\x06 \x01(\x0e\x32\x16.iterm2.AlternateColorH\x01\x12!\n\x05\x62gRgb\x18\x07 \x01(\x0b\x32\x10.iterm2.RGBColorH\x01\x12\x1f\n\x15\x62gAlternatePlacementY\x18\x08 \x01(\rH\x01\x12\x0c\n\x04\x62old\x18\t \x01(\x08\x12\r\n\x05\x66\x61int\x18\n \x01(\x08\x12\x0e\n\x06italic\x18\x0b \x01(\x08\x12\r\n\x05\x62link\x18\x0c \x01(\x08\x12\x11\n\tunderline\x18\r \x01(\x08\x12\x15\n\rstrikethrough\x18\x0e \x01(\x08\x12\x11\n\tinvisible\x18\x0f \x01(\x08\x12\x0f\n\x07inverse\x18\x10 \x01(\x08\x12\x0f\n\x07guarded\x18\x11 \x01(\x08\x12+\n\x05image\x18\x12 \x01(\x0e\x32\x1c.iterm2.ImagePlaceholderType\x12(\n\x0eunderlineColor\x18\x13 \x01(\x0b\x32\x10.iterm2.RGBColor\x12\x0f\n\x07\x62lockID\x18\x14 \x01(\t\x12\x18\n\x03url\x18\x15 \x01(\x0b\x32\x0b.iterm2.URL\x12\x0f\n\x07repeats\x18\x16 \x01(\rB\t\n\x07\x66gColorB\t\n\x07\x62gColor\"\x8d\x02\n\x0cLineContents\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x37\n\x14\x63ode_points_per_cell\x18\x02 \x03(\x0b\x32\x19.iterm2.CodePointsPerCell\x12N\n\x0c\x63ontinuation\x18\x03 \x01(\x0e\x32!.iterm2.LineContents.Continuation:\x15\x43ONTINUATION_HARD_EOL\x12 \n\x05style\x18\x04 \x03(\x0b\x32\x11.iterm2.CellStyle\"D\n\x0c\x43ontinuation\x12\x19\n\x15\x43ONTINUATION_HARD_EOL\x10\x01\x12\x19\n\x15\x43ONTINUATION_SOFT_EOL\x10\x02\"@\n\x11\x43odePointsPerCell\x12\x1a\n\x0fnum_code_points\x18\x01 \x01(\x05:\x01\x31\x12\x0f\n\x07repeats\x18\x02 \x01(\x05\"\x15\n\x13ListSessionsRequest\"L\n\x0fSendTextRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12\x0c\n\x04text\x18\x02 \x01(\t\x12\x1a\n\x12suppress_broadcast\x18\x03 \x01(\x08\"l\n\x10SendTextResponse\x12/\n\x06status\x18\x01 \x01(\x0e\x32\x1f.iterm2.SendTextResponse.Status\"\'\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\"%\n\x04Size\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\"\x1d\n\x05Point\x12\t\n\x01x\x18\x01 \x01(\x05\x12\t\n\x01y\x18\x02 \x01(\x05\"B\n\x05\x46rame\x12\x1d\n\x06origin\x18\x01 \x01(\x0b\x32\r.iterm2.Point\x12\x1a\n\x04size\x18\x02 \x01(\x0b\x32\x0c.iterm2.Size\"y\n\x0eSessionSummary\x12\x19\n\x11unique_identifier\x18\x01 \x01(\t\x12\x1c\n\x05\x66rame\x18\x02 \x01(\x0b\x32\r.iterm2.Frame\x12\x1f\n\tgrid_size\x18\x03 \x01(\x0b\x32\x0c.iterm2.Size\x12\r\n\x05title\x18\x04 \x01(\t\"\xc1\x01\n\rSplitTreeNode\x12\x10\n\x08vertical\x18\x01 \x01(\x08\x12\x32\n\x05links\x18\x02 \x03(\x0b\x32#.iterm2.SplitTreeNode.SplitTreeLink\x1aj\n\rSplitTreeLink\x12)\n\x07session\x18\x01 \x01(\x0b\x32\x16.iterm2.SessionSummaryH\x00\x12%\n\x04node\x18\x02 \x01(\x0b\x32\x15.iterm2.SplitTreeNodeH\x00\x42\x07\n\x05\x63hild\"\x9d\x03\n\x14ListSessionsResponse\x12\x34\n\x07windows\x18\x01 \x03(\x0b\x32#.iterm2.ListSessionsResponse.Window\x12/\n\x0f\x62uried_sessions\x18\x02 \x03(\x0b\x32\x16.iterm2.SessionSummary\x1ay\n\x06Window\x12.\n\x04tabs\x18\x01 \x03(\x0b\x32 .iterm2.ListSessionsResponse.Tab\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x1c\n\x05\x66rame\x18\x03 \x01(\x0b\x32\r.iterm2.Frame\x12\x0e\n\x06number\x18\x04 \x01(\x05\x1a\xa2\x01\n\x03Tab\x12#\n\x04root\x18\x03 \x01(\x0b\x32\x15.iterm2.SplitTreeNode\x12\x0e\n\x06tab_id\x18\x02 \x01(\t\x12\x16\n\x0etmux_window_id\x18\x04 \x01(\t\x12\x1a\n\x12tmux_connection_id\x18\x05 \x01(\t\x12\x32\n\x12minimized_sessions\x18\x06 \x03(\x0b\x32\x16.iterm2.SessionSummary\"\x9f\x01\n\x10\x43reateTabRequest\x12\x14\n\x0cprofile_name\x18\x01 \x01(\t\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x11\n\ttab_index\x18\x03 \x01(\r\x12\x13\n\x07\x63ommand\x18\x04 \x01(\tB\x02\x18\x01\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\"\xf0\x01\n\x11\x43reateTabResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.CreateTabResponse.Status\x12\x11\n\twindow_id\x18\x02 \x01(\t\x12\x0e\n\x06tab_id\x18\x03 \x01(\x05\x12\x12\n\nsession_id\x18\x04 \x01(\t\"r\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x01\x12\x15\n\x11INVALID_WINDOW_ID\x10\x02\x12\x15\n\x11INVALID_TAB_INDEX\x10\x03\x12\x18\n\x14MISSING_SUBSTITUTION\x10\x04\"\xfe\x01\n\x10SplitPaneRequest\x12\x0f\n\x07session\x18\x01 \x01(\t\x12@\n\x0fsplit_direction\x18\x02 \x01(\x0e\x32\'.iterm2.SplitPaneRequest.SplitDirection\x12\x15\n\x06\x62\x65\x66ore\x18\x03 \x01(\x08:\x05\x66\x61lse\x12\x14\n\x0cprofile_name\x18\x04 \x01(\t\x12:\n\x19\x63ustom_profile_properties\x18\x05 \x03(\x0b\x32\x17.iterm2.ProfileProperty\".\n\x0eSplitDirection\x12\x0c\n\x08VERTICAL\x10\x00\x12\x0e\n\nHORIZONTAL\x10\x01\"\xd5\x01\n\x11SplitPaneResponse\x12\x30\n\x06status\x18\x01 \x01(\x0e\x32 .iterm2.SplitPaneResponse.Status\x12\x12\n\nsession_id\x18\x02 \x03(\t\"z\n\x06Status\x12\x06\n\x02OK\x10\x00\x12\x15\n\x11SESSION_NOT_FOUND\x10\x01\x12\x18\n\x14INVALID_PROFILE_NAME\x10\x02\x12\x10\n\x0c\x43\x41NNOT_SPLIT\x10\x03\x12%\n!MALFORMED_CUSTOM_PROFILE_PROPERTY\x10\x04*V\n\rSelectionMode\x12\r\n\tCHARACTER\x10\x00\x12\x08\n\x04WORD\x10\x01\x12\x08\n\x04LINE\x10\x02\x12\t\n\x05SMART\x10\x03\x12\x07\n\x03\x42OX\x10\x04\x12\x0e\n\nWHOLE_LINE\x10\x05*\xb4\x03\n\x10NotificationType\x12\x17\n\x13NOTIFY_ON_KEYSTROKE\x10\x01\x12\x1b\n\x17NOTIFY_ON_SCREEN_UPDATE\x10\x02\x12\x14\n\x10NOTIFY_ON_PROMPT\x10\x03\x12!\n\x19NOTIFY_ON_LOCATION_CHANGE\x10\x04\x1a\x02\x08\x01\x12$\n NOTIFY_ON_CUSTOM_ESCAPE_SEQUENCE\x10\x05\x12\x1d\n\x19NOTIFY_ON_VARIABLE_CHANGE\x10\x0c\x12\x14\n\x10KEYSTROKE_FILTER\x10\x0e\x12\x19\n\x15NOTIFY_ON_NEW_SESSION\x10\x06\x12\x1f\n\x1bNOTIFY_ON_TERMINATE_SESSION\x10\x07\x12\x1b\n\x17NOTIFY_ON_LAYOUT_CHANGE\x10\x08\x12\x1a\n\x16NOTIFY_ON_FOCUS_CHANGE\x10\t\x12#\n\x1fNOTIFY_ON_SERVER_ORIGINATED_RPC\x10\n\x12\x1e\n\x1aNOTIFY_ON_BROADCAST_CHANGE\x10\x0b\x12\x1c\n\x18NOTIFY_ON_PROFILE_CHANGE\x10\r*V\n\tModifiers\x12\x0b\n\x07\x43ONTROL\x10\x01\x12\n\n\x06OPTION\x10\x02\x12\x0b\n\x07\x43OMMAND\x10\x03\x12\t\n\x05SHIFT\x10\x04\x12\x0c\n\x08\x46UNCTION\x10\x05\x12\n\n\x06NUMPAD\x10\x06*:\n\rVariableScope\x12\x0b\n\x07SESSION\x10\x01\x12\x07\n\x03TAB\x10\x02\x12\n\n\x06WINDOW\x10\x03\x12\x07\n\x03\x41PP\x10\x04*C\n\x11PromptMonitorMode\x12\n\n\x06PROMPT\x10\x01\x12\x11\n\rCOMMAND_START\x10\x02\x12\x0f\n\x0b\x43OMMAND_END\x10\x03*G\n\x0e\x41lternateColor\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x14\n\x10REVERSED_DEFAULT\x10\x03\x12\x12\n\x0eSYSTEM_MESSAGE\x10\x04*7\n\x14ImagePlaceholderType\x12\x08\n\x04NONE\x10\x00\x12\n\n\x06ITERM2\x10\x01\x12\t\n\x05KITTY\x10\x02\x42\x06\xa2\x02\x03ITM"
9
+
10
+ pool = ::Google::Protobuf::DescriptorPool.generated_pool
11
+ pool.add_serialized_file(descriptor_data)
12
+
13
+ module Iterm2
14
+ ClientOriginatedMessage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ClientOriginatedMessage").msgclass
15
+ ServerOriginatedMessage = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedMessage").msgclass
16
+ InvokeFunctionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest").msgclass
17
+ InvokeFunctionRequest::Tab = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest.Tab").msgclass
18
+ InvokeFunctionRequest::Session = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest.Session").msgclass
19
+ InvokeFunctionRequest::Window = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest.Window").msgclass
20
+ InvokeFunctionRequest::App = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest.App").msgclass
21
+ InvokeFunctionRequest::Method = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionRequest.Method").msgclass
22
+ InvokeFunctionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionResponse").msgclass
23
+ InvokeFunctionResponse::Error = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionResponse.Error").msgclass
24
+ InvokeFunctionResponse::Success = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionResponse.Success").msgclass
25
+ InvokeFunctionResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InvokeFunctionResponse.Status").enummodule
26
+ CloseRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseRequest").msgclass
27
+ CloseRequest::CloseTabs = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseRequest.CloseTabs").msgclass
28
+ CloseRequest::CloseSessions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseRequest.CloseSessions").msgclass
29
+ CloseRequest::CloseWindows = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseRequest.CloseWindows").msgclass
30
+ CloseResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseResponse").msgclass
31
+ CloseResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CloseResponse.Status").enummodule
32
+ SetBroadcastDomainsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetBroadcastDomainsRequest").msgclass
33
+ SetBroadcastDomainsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetBroadcastDomainsResponse").msgclass
34
+ SetBroadcastDomainsResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetBroadcastDomainsResponse.Status").enummodule
35
+ StatusBarComponentRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.StatusBarComponentRequest").msgclass
36
+ StatusBarComponentRequest::OpenPopover = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.StatusBarComponentRequest.OpenPopover").msgclass
37
+ StatusBarComponentResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.StatusBarComponentResponse").msgclass
38
+ StatusBarComponentResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.StatusBarComponentResponse.Status").enummodule
39
+ WindowedCoordRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.WindowedCoordRange").msgclass
40
+ SubSelection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SubSelection").msgclass
41
+ Selection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Selection").msgclass
42
+ SelectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionRequest").msgclass
43
+ SelectionRequest::GetSelectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionRequest.GetSelectionRequest").msgclass
44
+ SelectionRequest::SetSelectionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionRequest.SetSelectionRequest").msgclass
45
+ SelectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionResponse").msgclass
46
+ SelectionResponse::GetSelectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionResponse.GetSelectionResponse").msgclass
47
+ SelectionResponse::SetSelectionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionResponse.SetSelectionResponse").msgclass
48
+ SelectionResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionResponse.Status").enummodule
49
+ ColorPresetRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetRequest").msgclass
50
+ ColorPresetRequest::ListPresets = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetRequest.ListPresets").msgclass
51
+ ColorPresetRequest::GetPreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetRequest.GetPreset").msgclass
52
+ ColorPresetResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetResponse").msgclass
53
+ ColorPresetResponse::ListPresets = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetResponse.ListPresets").msgclass
54
+ ColorPresetResponse::GetPreset = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetResponse.GetPreset").msgclass
55
+ ColorPresetResponse::GetPreset::ColorSetting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetResponse.GetPreset.ColorSetting").msgclass
56
+ ColorPresetResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ColorPresetResponse.Status").enummodule
57
+ PreferencesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest").msgclass
58
+ PreferencesRequest::Request = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest.Request").msgclass
59
+ PreferencesRequest::Request::SetPreference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest.Request.SetPreference").msgclass
60
+ PreferencesRequest::Request::GetPreference = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest.Request.GetPreference").msgclass
61
+ PreferencesRequest::Request::SetDefaultProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest.Request.SetDefaultProfile").msgclass
62
+ PreferencesRequest::Request::GetDefaultProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesRequest.Request.GetDefaultProfile").msgclass
63
+ PreferencesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse").msgclass
64
+ PreferencesResponse::Result = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result").msgclass
65
+ PreferencesResponse::Result::SetPreferenceResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.SetPreferenceResult").msgclass
66
+ PreferencesResponse::Result::SetPreferenceResult::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.SetPreferenceResult.Status").enummodule
67
+ PreferencesResponse::Result::GetPreferenceResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.GetPreferenceResult").msgclass
68
+ PreferencesResponse::Result::SetDefaultProfileResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.SetDefaultProfileResult").msgclass
69
+ PreferencesResponse::Result::SetDefaultProfileResult::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.SetDefaultProfileResult.Status").enummodule
70
+ PreferencesResponse::Result::UnrecognizedResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.UnrecognizedResult").msgclass
71
+ PreferencesResponse::Result::GetDefaultProfileResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PreferencesResponse.Result.GetDefaultProfileResult").msgclass
72
+ ReorderTabsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ReorderTabsRequest").msgclass
73
+ ReorderTabsRequest::Assignment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ReorderTabsRequest.Assignment").msgclass
74
+ ReorderTabsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ReorderTabsResponse").msgclass
75
+ ReorderTabsResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ReorderTabsResponse.Status").enummodule
76
+ TmuxRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxRequest").msgclass
77
+ TmuxRequest::ListConnections = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxRequest.ListConnections").msgclass
78
+ TmuxRequest::SendCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxRequest.SendCommand").msgclass
79
+ TmuxRequest::SetWindowVisible = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxRequest.SetWindowVisible").msgclass
80
+ TmuxRequest::CreateWindow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxRequest.CreateWindow").msgclass
81
+ TmuxResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse").msgclass
82
+ TmuxResponse::ListConnections = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.ListConnections").msgclass
83
+ TmuxResponse::ListConnections::Connection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.ListConnections.Connection").msgclass
84
+ TmuxResponse::SendCommand = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.SendCommand").msgclass
85
+ TmuxResponse::SetWindowVisible = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.SetWindowVisible").msgclass
86
+ TmuxResponse::CreateWindow = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.CreateWindow").msgclass
87
+ TmuxResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TmuxResponse.Status").enummodule
88
+ GetBroadcastDomainsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetBroadcastDomainsRequest").msgclass
89
+ BroadcastDomain = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.BroadcastDomain").msgclass
90
+ GetBroadcastDomainsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetBroadcastDomainsResponse").msgclass
91
+ SetTabLayoutRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetTabLayoutRequest").msgclass
92
+ SetTabLayoutResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetTabLayoutResponse").msgclass
93
+ SetTabLayoutResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetTabLayoutResponse.Status").enummodule
94
+ MenuItemRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.MenuItemRequest").msgclass
95
+ MenuItemResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.MenuItemResponse").msgclass
96
+ MenuItemResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.MenuItemResponse.Status").enummodule
97
+ RestartSessionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RestartSessionRequest").msgclass
98
+ RestartSessionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RestartSessionResponse").msgclass
99
+ RestartSessionResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RestartSessionResponse.Status").enummodule
100
+ ServerOriginatedRPCResultRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedRPCResultRequest").msgclass
101
+ ServerOriginatedRPCResultResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedRPCResultResponse").msgclass
102
+ ListProfilesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListProfilesRequest").msgclass
103
+ ListProfilesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListProfilesResponse").msgclass
104
+ ListProfilesResponse::Profile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListProfilesResponse.Profile").msgclass
105
+ FocusRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.FocusRequest").msgclass
106
+ FocusResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.FocusResponse").msgclass
107
+ SavedArrangementRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SavedArrangementRequest").msgclass
108
+ SavedArrangementRequest::Action = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SavedArrangementRequest.Action").enummodule
109
+ SavedArrangementResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SavedArrangementResponse").msgclass
110
+ SavedArrangementResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SavedArrangementResponse.Status").enummodule
111
+ VariableRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableRequest").msgclass
112
+ VariableRequest::Set = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableRequest.Set").msgclass
113
+ VariableResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableResponse").msgclass
114
+ VariableResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableResponse.Status").enummodule
115
+ ActivateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ActivateRequest").msgclass
116
+ ActivateRequest::App = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ActivateRequest.App").msgclass
117
+ ActivateResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ActivateResponse").msgclass
118
+ ActivateResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ActivateResponse.Status").enummodule
119
+ InjectRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InjectRequest").msgclass
120
+ InjectResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InjectResponse").msgclass
121
+ InjectResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.InjectResponse.Status").enummodule
122
+ GetPropertyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPropertyRequest").msgclass
123
+ GetPropertyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPropertyResponse").msgclass
124
+ GetPropertyResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPropertyResponse.Status").enummodule
125
+ SetPropertyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetPropertyRequest").msgclass
126
+ SetPropertyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetPropertyResponse").msgclass
127
+ SetPropertyResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetPropertyResponse.Status").enummodule
128
+ RegisterToolRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RegisterToolRequest").msgclass
129
+ RegisterToolRequest::ToolType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RegisterToolRequest.ToolType").enummodule
130
+ RPCRegistrationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest").msgclass
131
+ RPCRegistrationRequest::RPCArgumentSignature = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.RPCArgumentSignature").msgclass
132
+ RPCRegistrationRequest::RPCArgument = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.RPCArgument").msgclass
133
+ RPCRegistrationRequest::SessionTitleAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.SessionTitleAttributes").msgclass
134
+ RPCRegistrationRequest::StatusBarComponentAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.StatusBarComponentAttributes").msgclass
135
+ RPCRegistrationRequest::StatusBarComponentAttributes::Knob = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob").msgclass
136
+ RPCRegistrationRequest::StatusBarComponentAttributes::Knob::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Knob.Type").enummodule
137
+ RPCRegistrationRequest::StatusBarComponentAttributes::Icon = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Icon").msgclass
138
+ RPCRegistrationRequest::StatusBarComponentAttributes::Format = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.StatusBarComponentAttributes.Format").enummodule
139
+ RPCRegistrationRequest::ContextMenuAttributes = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.ContextMenuAttributes").msgclass
140
+ RPCRegistrationRequest::Role = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RPCRegistrationRequest.Role").enummodule
141
+ RegisterToolResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RegisterToolResponse").msgclass
142
+ RegisterToolResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RegisterToolResponse.Status").enummodule
143
+ KeystrokePattern = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.KeystrokePattern").msgclass
144
+ KeystrokeMonitorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.KeystrokeMonitorRequest").msgclass
145
+ KeystrokeFilterRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.KeystrokeFilterRequest").msgclass
146
+ VariableMonitorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableMonitorRequest").msgclass
147
+ ProfileChangeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ProfileChangeRequest").msgclass
148
+ PromptMonitorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptMonitorRequest").msgclass
149
+ NotificationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.NotificationRequest").msgclass
150
+ NotificationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.NotificationResponse").msgclass
151
+ NotificationResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.NotificationResponse.Status").enummodule
152
+ Notification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Notification").msgclass
153
+ ProfileChangedNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ProfileChangedNotification").msgclass
154
+ VariableChangedNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableChangedNotification").msgclass
155
+ BroadcastDomainsChangedNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.BroadcastDomainsChangedNotification").msgclass
156
+ ServerOriginatedRPC = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedRPC").msgclass
157
+ ServerOriginatedRPC::RPCArgument = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedRPC.RPCArgument").msgclass
158
+ ServerOriginatedRPCNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ServerOriginatedRPCNotification").msgclass
159
+ KeystrokeNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.KeystrokeNotification").msgclass
160
+ KeystrokeNotification::Action = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.KeystrokeNotification.Action").enummodule
161
+ ScreenUpdateNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ScreenUpdateNotification").msgclass
162
+ PromptNotificationPrompt = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptNotificationPrompt").msgclass
163
+ PromptNotificationCommandStart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptNotificationCommandStart").msgclass
164
+ PromptNotificationCommandEnd = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptNotificationCommandEnd").msgclass
165
+ PromptNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptNotification").msgclass
166
+ LocationChangeNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.LocationChangeNotification").msgclass
167
+ CustomEscapeSequenceNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CustomEscapeSequenceNotification").msgclass
168
+ NewSessionNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.NewSessionNotification").msgclass
169
+ FocusChangedNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.FocusChangedNotification").msgclass
170
+ FocusChangedNotification::Window = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.FocusChangedNotification.Window").msgclass
171
+ FocusChangedNotification::Window::WindowStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.FocusChangedNotification.Window.WindowStatus").enummodule
172
+ TerminateSessionNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TerminateSessionNotification").msgclass
173
+ LayoutChangedNotification = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.LayoutChangedNotification").msgclass
174
+ GetBufferRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetBufferRequest").msgclass
175
+ GetBufferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetBufferResponse").msgclass
176
+ GetBufferResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetBufferResponse.Status").enummodule
177
+ GetPromptRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPromptRequest").msgclass
178
+ GetPromptResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPromptResponse").msgclass
179
+ GetPromptResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPromptResponse.Status").enummodule
180
+ GetPromptResponse::State = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetPromptResponse.State").enummodule
181
+ ListPromptsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListPromptsRequest").msgclass
182
+ ListPromptsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListPromptsResponse").msgclass
183
+ ListPromptsResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListPromptsResponse.Status").enummodule
184
+ GetProfilePropertyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetProfilePropertyRequest").msgclass
185
+ ProfileProperty = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ProfileProperty").msgclass
186
+ GetProfilePropertyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetProfilePropertyResponse").msgclass
187
+ GetProfilePropertyResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.GetProfilePropertyResponse.Status").enummodule
188
+ SetProfilePropertyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetProfilePropertyRequest").msgclass
189
+ SetProfilePropertyRequest::GuidList = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetProfilePropertyRequest.GuidList").msgclass
190
+ SetProfilePropertyRequest::Assignment = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetProfilePropertyRequest.Assignment").msgclass
191
+ SetProfilePropertyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetProfilePropertyResponse").msgclass
192
+ SetProfilePropertyResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SetProfilePropertyResponse.Status").enummodule
193
+ TransactionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TransactionRequest").msgclass
194
+ TransactionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TransactionResponse").msgclass
195
+ TransactionResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.TransactionResponse.Status").enummodule
196
+ LineRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.LineRange").msgclass
197
+ Range = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Range").msgclass
198
+ CoordRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CoordRange").msgclass
199
+ Coord = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Coord").msgclass
200
+ RGBColor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.RGBColor").msgclass
201
+ URL = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.URL").msgclass
202
+ CellStyle = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CellStyle").msgclass
203
+ LineContents = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.LineContents").msgclass
204
+ LineContents::Continuation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.LineContents.Continuation").enummodule
205
+ CodePointsPerCell = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CodePointsPerCell").msgclass
206
+ ListSessionsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListSessionsRequest").msgclass
207
+ SendTextRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SendTextRequest").msgclass
208
+ SendTextResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SendTextResponse").msgclass
209
+ SendTextResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SendTextResponse.Status").enummodule
210
+ Size = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Size").msgclass
211
+ Point = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Point").msgclass
212
+ Frame = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Frame").msgclass
213
+ SessionSummary = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SessionSummary").msgclass
214
+ SplitTreeNode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitTreeNode").msgclass
215
+ SplitTreeNode::SplitTreeLink = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitTreeNode.SplitTreeLink").msgclass
216
+ ListSessionsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListSessionsResponse").msgclass
217
+ ListSessionsResponse::Window = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListSessionsResponse.Window").msgclass
218
+ ListSessionsResponse::Tab = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ListSessionsResponse.Tab").msgclass
219
+ CreateTabRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CreateTabRequest").msgclass
220
+ CreateTabResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CreateTabResponse").msgclass
221
+ CreateTabResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.CreateTabResponse.Status").enummodule
222
+ SplitPaneRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitPaneRequest").msgclass
223
+ SplitPaneRequest::SplitDirection = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitPaneRequest.SplitDirection").enummodule
224
+ SplitPaneResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitPaneResponse").msgclass
225
+ SplitPaneResponse::Status = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SplitPaneResponse.Status").enummodule
226
+ SelectionMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.SelectionMode").enummodule
227
+ NotificationType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.NotificationType").enummodule
228
+ Modifiers = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.Modifiers").enummodule
229
+ VariableScope = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.VariableScope").enummodule
230
+ PromptMonitorMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.PromptMonitorMode").enummodule
231
+ AlternateColor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.AlternateColor").enummodule
232
+ ImagePlaceholderType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("iterm2.ImagePlaceholderType").enummodule
233
+ end