acp_sdk_async 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.
data/lib/acp/schema.rb ADDED
@@ -0,0 +1,1365 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "schema_base"
4
+
5
+ module ACP
6
+ module Schema
7
+ SCHEMA_REF = "refs/tags/schema-v1.21.0"
8
+
9
+ class WriteTextFileRequest < Base
10
+ field :session_id, "SessionId", required: true
11
+ field :path, :string, required: true
12
+ field :content, :string, required: true
13
+ end
14
+
15
+ class ReadTextFileRequest < Base
16
+ field :session_id, "SessionId", required: true
17
+ field :path, :string, required: true
18
+ field :line, :integer, default_on_error: true
19
+ field :limit, :integer, default_on_error: true
20
+ end
21
+
22
+ class RequestPermissionRequest < Base
23
+ field :session_id, "SessionId", required: true
24
+ field :tool_call, "ToolCallUpdate", required: true
25
+ field :options, Types::List.new("PermissionOption"), required: true
26
+ end
27
+
28
+ class ToolCallUpdate < Base
29
+ field :tool_call_id, "ToolCallId", required: true
30
+ field :kind, "ToolKind", default_on_error: true
31
+ field :status, "ToolCallStatus", default_on_error: true
32
+ field :title, :string, default_on_error: true
33
+ field :name, :string, default_on_error: true
34
+ field :content, Types::List.new("ToolCallContent", skip_invalid: true), default_on_error: true
35
+ field :locations, Types::List.new("ToolCallLocation", skip_invalid: true), default_on_error: true
36
+ field :raw_input, :any, default_on_error: true
37
+ field :raw_output, :any, default_on_error: true
38
+ end
39
+
40
+ class Annotations < Base
41
+ field :audience, Types::List.new("Role", skip_invalid: true), default_on_error: true
42
+ field :last_modified, :string, default_on_error: true
43
+ field :priority, :number, default_on_error: true
44
+ end
45
+
46
+ class TextContent < Base
47
+ field :annotations, "Annotations", default_on_error: true
48
+ field :text, :string, required: true
49
+ end
50
+
51
+ class ImageContent < Base
52
+ field :annotations, "Annotations", default_on_error: true
53
+ field :data, :string, required: true
54
+ field :mime_type, :string, required: true
55
+ field :uri, :string, default_on_error: true
56
+ end
57
+
58
+ class AudioContent < Base
59
+ field :annotations, "Annotations", default_on_error: true
60
+ field :data, :string, required: true
61
+ field :mime_type, :string, required: true
62
+ end
63
+
64
+ class ResourceLink < Base
65
+ field :annotations, "Annotations", default_on_error: true
66
+ field :description, :string, default_on_error: true
67
+ field :mime_type, :string, default_on_error: true
68
+ field :name, :string, required: true
69
+ field :size, :integer, default_on_error: true
70
+ field :title, :string, default_on_error: true
71
+ field :uri, :string, required: true
72
+ end
73
+
74
+ class TextResourceContents < Base
75
+ field :mime_type, :string, default_on_error: true
76
+ field :text, :string, required: true
77
+ field :uri, :string, required: true
78
+ end
79
+
80
+ class BlobResourceContents < Base
81
+ field :blob, :string, required: true
82
+ field :mime_type, :string, default_on_error: true
83
+ field :uri, :string, required: true
84
+ end
85
+
86
+ class EmbeddedResource < Base
87
+ field :annotations, "Annotations", default_on_error: true
88
+ field :resource, "EmbeddedResourceResource", required: true
89
+ end
90
+
91
+ class Content < Base
92
+ field :content, "ContentBlock", required: true
93
+ end
94
+
95
+ class Diff < Base
96
+ field :path, :string, required: true
97
+ field :old_text, :string, default_on_error: true
98
+ field :new_text, :string, required: true
99
+ end
100
+
101
+ class Terminal < Base
102
+ field :terminal_id, "TerminalId", required: true
103
+ end
104
+
105
+ class ToolCallLocation < Base
106
+ field :path, :string, required: true
107
+ field :line, :integer, default_on_error: true
108
+ end
109
+
110
+ class PermissionOption < Base
111
+ field :option_id, "PermissionOptionId", required: true
112
+ field :name, :string, required: true
113
+ field :kind, "PermissionOptionKind", required: true
114
+ end
115
+
116
+ class CreateTerminalRequest < Base
117
+ field :session_id, "SessionId", required: true
118
+ field :command, :string, required: true
119
+ field :args, Types::List.new(:string, skip_invalid: true), default_on_error: true
120
+ field :env, Types::List.new("EnvVariable", skip_invalid: true), default_on_error: true
121
+ field :cwd, :string, default_on_error: true
122
+ field :output_byte_limit, :integer, default_on_error: true
123
+ end
124
+
125
+ class EnvVariable < Base
126
+ field :name, :string, required: true
127
+ field :value, :string, required: true
128
+ end
129
+
130
+ class TerminalOutputRequest < Base
131
+ field :session_id, "SessionId", required: true
132
+ field :terminal_id, "TerminalId", required: true
133
+ end
134
+
135
+ class ReleaseTerminalRequest < Base
136
+ field :session_id, "SessionId", required: true
137
+ field :terminal_id, "TerminalId", required: true
138
+ end
139
+
140
+ class WaitForTerminalExitRequest < Base
141
+ field :session_id, "SessionId", required: true
142
+ field :terminal_id, "TerminalId", required: true
143
+ end
144
+
145
+ class KillTerminalRequest < Base
146
+ field :session_id, "SessionId", required: true
147
+ field :terminal_id, "TerminalId", required: true
148
+ end
149
+
150
+ class ElicitationSessionScope < Base
151
+ field :session_id, "SessionId", required: true
152
+ field :tool_call_id, "ToolCallId", default_on_error: true
153
+ end
154
+
155
+ class ElicitationRequestScope < Base
156
+ field :request_id, "RequestId", required: true
157
+ end
158
+
159
+ class ElicitationSchema < Base
160
+ field :type, "ElicitationSchemaType", default: "object", default_on_error: true
161
+ field :title, :string, default_on_error: true
162
+ field :properties, Types::Map.new("ElicitationPropertySchema"), default: {}
163
+ field :required, Types::List.new(:string)
164
+ field :description, :string, default_on_error: true
165
+ end
166
+
167
+ class EnumOption < Base
168
+ field :const, :string, required: true
169
+ field :title, :string, required: true
170
+ field :description, :string, default_on_error: true
171
+ end
172
+
173
+ class StringPropertySchema < Base
174
+ field :title, :string, default_on_error: true
175
+ field :description, :string, default_on_error: true
176
+ field :min_length, :integer
177
+ field :max_length, :integer
178
+ field :pattern, :string
179
+ field :format, "StringFormat"
180
+ field :default, :string, default_on_error: true
181
+ field :enum, Types::List.new(:string)
182
+ field :one_of, Types::List.new("EnumOption")
183
+ end
184
+
185
+ class NumberPropertySchema < Base
186
+ field :title, :string, default_on_error: true
187
+ field :description, :string, default_on_error: true
188
+ field :minimum, :number
189
+ field :maximum, :number
190
+ field :default, :number, default_on_error: true
191
+ end
192
+
193
+ class IntegerPropertySchema < Base
194
+ field :title, :string, default_on_error: true
195
+ field :description, :string, default_on_error: true
196
+ field :minimum, :integer
197
+ field :maximum, :integer
198
+ field :default, :integer, default_on_error: true
199
+ end
200
+
201
+ class BooleanPropertySchema < Base
202
+ field :title, :string, default_on_error: true
203
+ field :description, :string, default_on_error: true
204
+ field :default, :boolean, default_on_error: true
205
+ end
206
+
207
+ class StringMultiSelectItemsBase < Base
208
+ field :enum, Types::List.new(:string), required: true
209
+ end
210
+
211
+ class TitledMultiSelectItems < Base
212
+ field :any_of, Types::List.new("EnumOption"), required: true
213
+ end
214
+
215
+ class MultiSelectPropertySchema < Base
216
+ field :title, :string, default_on_error: true
217
+ field :description, :string, default_on_error: true
218
+ field :min_items, :integer
219
+ field :max_items, :integer
220
+ field :items, "MultiSelectItems", required: true
221
+ field :default, Types::List.new(:string, skip_invalid: true), default_on_error: true
222
+ end
223
+
224
+ class ConnectMcpRequest < Base
225
+ field :server_id, "McpServerAcpId", required: true
226
+ end
227
+
228
+ class MessageMcpRequest < Base
229
+ field :connection_id, "McpConnectionId", required: true
230
+ field :method_name, :string, key: "method", required: true
231
+ field :params, :object
232
+ end
233
+
234
+ class DisconnectMcpRequest < Base
235
+ field :connection_id, "McpConnectionId", required: true
236
+ end
237
+
238
+ class InitializeResponse < Base
239
+ field :protocol_version, "ProtocolVersion", required: true
240
+ field :agent_capabilities, "AgentCapabilities", default: {"loadSession" => false, "promptCapabilities" => {"image" => false, "audio" => false, "embeddedContext" => false}, "mcpCapabilities" => {"http" => false, "sse" => false, "acp" => false}, "sessionCapabilities" => {}, "auth" => {}}, default_on_error: true
241
+ field :auth_methods, Types::List.new("AuthMethod", skip_invalid: true), default: [], default_on_error: true
242
+ field :agent_info, "Implementation", default_on_error: true
243
+ end
244
+
245
+ class AgentCapabilities < Base
246
+ field :load_session, :boolean, default: false, default_on_error: true
247
+ field :prompt_capabilities, "PromptCapabilities", default: {"image" => false, "audio" => false, "embeddedContext" => false}, default_on_error: true
248
+ field :mcp_capabilities, "McpCapabilities", default: {"http" => false, "sse" => false, "acp" => false}, default_on_error: true
249
+ field :session_capabilities, "SessionCapabilities", default: {}, default_on_error: true
250
+ field :auth, "AgentAuthCapabilities", default: {}, default_on_error: true
251
+ field :providers, "ProvidersCapabilities", default_on_error: true
252
+ field :nes, "NesCapabilities", default_on_error: true
253
+ field :position_encoding, "PositionEncodingKind", default_on_error: true
254
+ end
255
+
256
+ class PromptCapabilities < Base
257
+ field :image, :boolean, default: false, default_on_error: true
258
+ field :audio, :boolean, default: false, default_on_error: true
259
+ field :embedded_context, :boolean, default: false, default_on_error: true
260
+ end
261
+
262
+ class McpCapabilities < Base
263
+ field :http, :boolean, default: false, default_on_error: true
264
+ field :sse, :boolean, default: false, default_on_error: true
265
+ field :acp, :boolean, default: false, default_on_error: true
266
+ end
267
+
268
+ class SessionCapabilities < Base
269
+ field :list, "SessionListCapabilities", default_on_error: true
270
+ field :delete, "SessionDeleteCapabilities", default_on_error: true
271
+ field :additional_directories, "SessionAdditionalDirectoriesCapabilities", default_on_error: true
272
+ field :fork, "SessionForkCapabilities", default_on_error: true
273
+ field :resume, "SessionResumeCapabilities", default_on_error: true
274
+ field :close, "SessionCloseCapabilities", default_on_error: true
275
+ end
276
+
277
+ class SessionListCapabilities < Base; end
278
+
279
+ class SessionDeleteCapabilities < Base; end
280
+
281
+ class SessionAdditionalDirectoriesCapabilities < Base; end
282
+
283
+ class SessionForkCapabilities < Base; end
284
+
285
+ class SessionResumeCapabilities < Base; end
286
+
287
+ class SessionCloseCapabilities < Base; end
288
+
289
+ class AgentAuthCapabilities < Base
290
+ field :logout, "LogoutCapabilities", default_on_error: true
291
+ end
292
+
293
+ class LogoutCapabilities < Base; end
294
+
295
+ class ProvidersCapabilities < Base; end
296
+
297
+ class NesCapabilities < Base
298
+ field :events, "NesEventCapabilities", default_on_error: true
299
+ field :context, "NesContextCapabilities", default_on_error: true
300
+ end
301
+
302
+ class NesEventCapabilities < Base
303
+ field :document, "NesDocumentEventCapabilities", default_on_error: true
304
+ end
305
+
306
+ class NesDocumentEventCapabilities < Base
307
+ field :did_open, "NesDocumentDidOpenCapabilities", default_on_error: true
308
+ field :did_change, "NesDocumentDidChangeCapabilities", default_on_error: true
309
+ field :did_close, "NesDocumentDidCloseCapabilities", default_on_error: true
310
+ field :did_save, "NesDocumentDidSaveCapabilities", default_on_error: true
311
+ field :did_focus, "NesDocumentDidFocusCapabilities", default_on_error: true
312
+ end
313
+
314
+ class NesDocumentDidOpenCapabilities < Base; end
315
+
316
+ class NesDocumentDidChangeCapabilities < Base
317
+ field :sync_kind, "TextDocumentSyncKind", required: true
318
+ end
319
+
320
+ class NesDocumentDidCloseCapabilities < Base; end
321
+
322
+ class NesDocumentDidSaveCapabilities < Base; end
323
+
324
+ class NesDocumentDidFocusCapabilities < Base; end
325
+
326
+ class NesContextCapabilities < Base
327
+ field :recent_files, "NesRecentFilesCapabilities", default_on_error: true
328
+ field :related_snippets, "NesRelatedSnippetsCapabilities", default_on_error: true
329
+ field :edit_history, "NesEditHistoryCapabilities", default_on_error: true
330
+ field :user_actions, "NesUserActionsCapabilities", default_on_error: true
331
+ field :open_files, "NesOpenFilesCapabilities", default_on_error: true
332
+ field :diagnostics, "NesDiagnosticsCapabilities", default_on_error: true
333
+ end
334
+
335
+ class NesRecentFilesCapabilities < Base
336
+ field :max_count, :integer, default_on_error: true
337
+ end
338
+
339
+ class NesRelatedSnippetsCapabilities < Base; end
340
+
341
+ class NesEditHistoryCapabilities < Base
342
+ field :max_count, :integer, default_on_error: true
343
+ end
344
+
345
+ class NesUserActionsCapabilities < Base
346
+ field :max_count, :integer, default_on_error: true
347
+ end
348
+
349
+ class NesOpenFilesCapabilities < Base; end
350
+
351
+ class NesDiagnosticsCapabilities < Base; end
352
+
353
+ class AuthMethodTerminal < Base
354
+ field :id, "AuthMethodId", required: true
355
+ field :name, :string, required: true
356
+ field :description, :string, default_on_error: true
357
+ field :args, Types::List.new(:string, skip_invalid: true), default_on_error: true
358
+ field :env, Types::Map.new(:string), default_on_error: true
359
+ end
360
+
361
+ class AuthMethodAgent < Base
362
+ field :id, "AuthMethodId", required: true
363
+ field :name, :string, required: true
364
+ field :description, :string, default_on_error: true
365
+ end
366
+
367
+ class Implementation < Base
368
+ field :name, :string, required: true
369
+ field :title, :string, default_on_error: true
370
+ field :version, :string, required: true
371
+ end
372
+
373
+ class AuthenticateResponse < Base; end
374
+
375
+ class ListProvidersResponse < Base
376
+ field :providers, Types::List.new("ProviderInfo"), required: true
377
+ end
378
+
379
+ class ProviderInfo < Base
380
+ field :provider_id, "ProviderId", required: true
381
+ field :supported, Types::List.new("LlmProtocol", skip_invalid: true), required: true, default_on_error: true
382
+ field :required, :boolean, required: true
383
+ field :current, "ProviderCurrentConfig"
384
+ end
385
+
386
+ class ProviderCurrentConfig < Base
387
+ field :api_type, "LlmProtocol", required: true
388
+ field :base_url, :string, required: true
389
+ end
390
+
391
+ class SetProviderResponse < Base; end
392
+
393
+ class DisableProviderResponse < Base; end
394
+
395
+ class LogoutResponse < Base; end
396
+
397
+ class NewSessionResponse < Base
398
+ field :session_id, "SessionId", required: true
399
+ field :modes, "SessionModeState", default_on_error: true
400
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), default_on_error: true
401
+ end
402
+
403
+ class SessionModeState < Base
404
+ field :current_mode_id, "SessionModeId", required: true
405
+ field :available_modes, Types::List.new("SessionMode", skip_invalid: true), required: true, default_on_error: true
406
+ end
407
+
408
+ class SessionMode < Base
409
+ field :id, "SessionModeId", required: true
410
+ field :name, :string, required: true
411
+ field :description, :string, default_on_error: true
412
+ end
413
+
414
+ class SessionConfigSelectOption < Base
415
+ field :value, "SessionConfigValueId", required: true
416
+ field :name, :string, required: true
417
+ field :description, :string, default_on_error: true
418
+ end
419
+
420
+ class SessionConfigSelectGroup < Base
421
+ field :group, "SessionConfigGroupId", required: true
422
+ field :name, :string, required: true
423
+ field :options, Types::List.new("SessionConfigSelectOption", skip_invalid: true), required: true, default_on_error: true
424
+ end
425
+
426
+ class SessionConfigSelect < Base
427
+ field :current_value, "SessionConfigValueId", required: true
428
+ field :options, "SessionConfigSelectOptions", required: true
429
+ end
430
+
431
+ class SessionConfigBoolean < Base
432
+ field :current_value, :boolean, required: true
433
+ end
434
+
435
+ class LoadSessionResponse < Base
436
+ field :modes, "SessionModeState", default_on_error: true
437
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), default_on_error: true
438
+ end
439
+
440
+ class ListSessionsResponse < Base
441
+ field :sessions, Types::List.new("SessionInfo", skip_invalid: true), required: true, default_on_error: true
442
+ field :next_cursor, :string, default_on_error: true
443
+ end
444
+
445
+ class SessionInfo < Base
446
+ field :session_id, "SessionId", required: true
447
+ field :cwd, :string, required: true
448
+ field :additional_directories, Types::List.new(:string, skip_invalid: true), default_on_error: true
449
+ field :title, :string, default_on_error: true
450
+ field :updated_at, :string, default_on_error: true
451
+ end
452
+
453
+ class DeleteSessionResponse < Base; end
454
+
455
+ class ForkSessionResponse < Base
456
+ field :session_id, "SessionId", required: true
457
+ field :modes, "SessionModeState", default_on_error: true
458
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), default_on_error: true
459
+ end
460
+
461
+ class ResumeSessionResponse < Base
462
+ field :modes, "SessionModeState", default_on_error: true
463
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), default_on_error: true
464
+ end
465
+
466
+ class CloseSessionResponse < Base; end
467
+
468
+ class SetSessionModeResponse < Base; end
469
+
470
+ class SetSessionConfigOptionResponse < Base
471
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), required: true, default_on_error: true
472
+ end
473
+
474
+ class PromptResponse < Base
475
+ field :stop_reason, "StopReason", required: true
476
+ field :usage, "Usage", default_on_error: true
477
+ end
478
+
479
+ class Usage < Base
480
+ field :total_tokens, :integer, required: true
481
+ field :input_tokens, :integer, required: true
482
+ field :output_tokens, :integer, required: true
483
+ field :thought_tokens, :integer, default_on_error: true
484
+ field :cached_read_tokens, :integer, default_on_error: true
485
+ field :cached_write_tokens, :integer, default_on_error: true
486
+ end
487
+
488
+ class StartNesResponse < Base
489
+ field :session_id, "SessionId", required: true
490
+ end
491
+
492
+ class SuggestNesResponse < Base
493
+ field :suggestions, Types::List.new("NesSuggestion"), required: true
494
+ end
495
+
496
+ class NesTextEdit < Base
497
+ field :range, "Range", required: true
498
+ field :new_text, :string, required: true
499
+ end
500
+
501
+ class Range < Base
502
+ field :start, "Position", required: true
503
+ field :end, "Position", required: true
504
+ end
505
+
506
+ class Position < Base
507
+ field :line, :integer, required: true
508
+ field :character, :integer, required: true
509
+ end
510
+
511
+ class NesEditSuggestion < Base
512
+ field :id, "NesSuggestionId", required: true
513
+ field :uri, :string, required: true
514
+ field :edits, Types::List.new("NesTextEdit"), required: true
515
+ field :cursor_position, "Position", default_on_error: true
516
+ end
517
+
518
+ class NesJumpSuggestion < Base
519
+ field :id, "NesSuggestionId", required: true
520
+ field :uri, :string, required: true
521
+ field :position, "Position", required: true
522
+ end
523
+
524
+ class NesRenameSuggestion < Base
525
+ field :id, "NesSuggestionId", required: true
526
+ field :uri, :string, required: true
527
+ field :position, "Position", required: true
528
+ field :new_name, :string, required: true
529
+ end
530
+
531
+ class NesSearchAndReplaceSuggestion < Base
532
+ field :id, "NesSuggestionId", required: true
533
+ field :uri, :string, required: true
534
+ field :search, :string, required: true
535
+ field :replace, :string, required: true
536
+ field :is_regex, :boolean
537
+ end
538
+
539
+ class CloseNesResponse < Base; end
540
+
541
+ class Error < Base
542
+ field :code, "ErrorCode", required: true
543
+ field :message, :string, required: true
544
+ field :data, :any, default_on_error: true
545
+ end
546
+
547
+ class SessionNotification < Base
548
+ field :session_id, "SessionId", required: true
549
+ field :update, "SessionUpdate", required: true
550
+ end
551
+
552
+ class ContentChunk < Base
553
+ field :content, "ContentBlock", required: true
554
+ field :message_id, "MessageId", default_on_error: true
555
+ end
556
+
557
+ class ToolCall < Base
558
+ field :tool_call_id, "ToolCallId", required: true
559
+ field :title, :string, required: true
560
+ field :name, :string, default_on_error: true
561
+ field :kind, "ToolKind", default_on_error: true
562
+ field :status, "ToolCallStatus", default_on_error: true
563
+ field :content, Types::List.new("ToolCallContent", skip_invalid: true), default_on_error: true
564
+ field :locations, Types::List.new("ToolCallLocation", skip_invalid: true), default_on_error: true
565
+ field :raw_input, :any, default_on_error: true
566
+ field :raw_output, :any, default_on_error: true
567
+ end
568
+
569
+ class PlanEntry < Base
570
+ field :content, :string, required: true
571
+ field :priority, "PlanEntryPriority", required: true
572
+ field :status, "PlanEntryStatus", required: true
573
+ end
574
+
575
+ class Plan < Base
576
+ field :entries, Types::List.new("PlanEntry", skip_invalid: true), required: true, default_on_error: true
577
+ end
578
+
579
+ class PlanItems < Base
580
+ field :plan_id, "PlanId", required: true
581
+ field :entries, Types::List.new("PlanEntry", skip_invalid: true), required: true, default_on_error: true
582
+ end
583
+
584
+ class PlanFile < Base
585
+ field :plan_id, "PlanId", required: true
586
+ field :uri, :string, required: true
587
+ end
588
+
589
+ class PlanMarkdown < Base
590
+ field :plan_id, "PlanId", required: true
591
+ field :content, :string, required: true
592
+ end
593
+
594
+ class PlanUpdate < Base
595
+ field :plan, "PlanUpdateContent", required: true
596
+ end
597
+
598
+ class PlanRemoved < Base
599
+ field :plan_id, "PlanId", required: true
600
+ end
601
+
602
+ class AvailableCommand < Base
603
+ field :name, :string, required: true
604
+ field :description, :string, required: true
605
+ field :input, "AvailableCommandInput", default_on_error: true
606
+ end
607
+
608
+ class UnstructuredCommandInput < Base
609
+ field :hint, :string, required: true
610
+ end
611
+
612
+ class AvailableCommandsUpdateBase < Base
613
+ field :available_commands, Types::List.new("AvailableCommand", skip_invalid: true), required: true, default_on_error: true
614
+ end
615
+
616
+ class CurrentModeUpdateBase < Base
617
+ field :current_mode_id, "SessionModeId", required: true
618
+ end
619
+
620
+ class ConfigOptionUpdateBase < Base
621
+ field :config_options, Types::List.new("SessionConfigOption", skip_invalid: true), required: true, default_on_error: true
622
+ end
623
+
624
+ class SessionInfoUpdateBase < Base
625
+ field :title, :string, default_on_error: true
626
+ field :updated_at, :string, default_on_error: true
627
+ end
628
+
629
+ class Cost < Base
630
+ field :amount, :number, required: true
631
+ field :currency, :string, required: true
632
+ end
633
+
634
+ class UsageUpdateBase < Base
635
+ field :used, :integer, required: true
636
+ field :size, :integer, required: true
637
+ field :cost, "Cost", default_on_error: true
638
+ end
639
+
640
+ class CompactionUpdate < Base
641
+ field :compaction_id, "CompactionId", required: true
642
+ field :status, "CompactionStatus", required: true
643
+ field :summary, Types::List.new("ContentBlock", skip_invalid: true), default_on_error: true
644
+ field :error, :string, default_on_error: true
645
+ end
646
+
647
+ class CompactionSummaryChunk < Base
648
+ field :compaction_id, "CompactionId", required: true
649
+ field :content, "ContentBlock", required: true
650
+ end
651
+
652
+ class CompleteElicitationNotification < Base
653
+ field :elicitation_id, "ElicitationId", required: true
654
+ end
655
+
656
+ class MessageMcpNotification < Base
657
+ field :connection_id, "McpConnectionId", required: true
658
+ field :method_name, :string, key: "method", required: true
659
+ field :params, :object, default_on_error: true
660
+ end
661
+
662
+ class InitializeRequest < Base
663
+ field :protocol_version, "ProtocolVersion", required: true
664
+ field :client_capabilities, "ClientCapabilities", default: {"fs" => {"readTextFile" => false, "writeTextFile" => false}, "terminal" => false, "auth" => {"terminal" => false}}, default_on_error: true
665
+ field :client_info, "Implementation", default_on_error: true
666
+ end
667
+
668
+ class ClientCapabilities < Base
669
+ field :fs, "FileSystemCapabilities", default: {"readTextFile" => false, "writeTextFile" => false}, default_on_error: true
670
+ field :terminal, :boolean, default: false, default_on_error: true
671
+ field :session, "ClientSessionCapabilities", default_on_error: true
672
+ field :plan, "PlanCapabilities", default_on_error: true
673
+ field :auth, "AuthCapabilities", default: {"terminal" => false}, default_on_error: true
674
+ field :elicitation, "ElicitationCapabilities", default_on_error: true
675
+ field :nes, "ClientNesCapabilities", default_on_error: true
676
+ field :position_encodings, Types::List.new("PositionEncodingKind", skip_invalid: true), default_on_error: true
677
+ end
678
+
679
+ class FileSystemCapabilities < Base
680
+ field :read_text_file, :boolean, default: false, default_on_error: true
681
+ field :write_text_file, :boolean, default: false, default_on_error: true
682
+ end
683
+
684
+ class ClientSessionCapabilities < Base
685
+ field :compaction, "CompactionCapabilities", default_on_error: true
686
+ field :config_options, "SessionConfigOptionsCapabilities", default_on_error: true
687
+ end
688
+
689
+ class CompactionCapabilities < Base; end
690
+
691
+ class SessionConfigOptionsCapabilities < Base
692
+ field :boolean, "BooleanConfigOptionCapabilities", default_on_error: true
693
+ end
694
+
695
+ class BooleanConfigOptionCapabilities < Base; end
696
+
697
+ class PlanCapabilities < Base; end
698
+
699
+ class AuthCapabilities < Base
700
+ field :terminal, :boolean, default: false, default_on_error: true
701
+ end
702
+
703
+ class ElicitationCapabilities < Base
704
+ field :form, "ElicitationFormCapabilities", default_on_error: true
705
+ field :url, "ElicitationUrlCapabilities", default_on_error: true
706
+ end
707
+
708
+ class ElicitationFormCapabilities < Base; end
709
+
710
+ class ElicitationUrlCapabilities < Base; end
711
+
712
+ class ClientNesCapabilities < Base
713
+ field :jump, "NesJumpCapabilities", default_on_error: true
714
+ field :rename, "NesRenameCapabilities", default_on_error: true
715
+ field :search_and_replace, "NesSearchAndReplaceCapabilities", default_on_error: true
716
+ end
717
+
718
+ class NesJumpCapabilities < Base; end
719
+
720
+ class NesRenameCapabilities < Base; end
721
+
722
+ class NesSearchAndReplaceCapabilities < Base; end
723
+
724
+ class AuthenticateRequest < Base
725
+ field :method_id, "AuthMethodId", required: true
726
+ end
727
+
728
+ class ListProvidersRequest < Base; end
729
+
730
+ class SetProviderRequest < Base
731
+ field :provider_id, "ProviderId", required: true
732
+ field :api_type, "LlmProtocol", required: true
733
+ field :base_url, :string, required: true
734
+ field :headers, Types::Map.new(:string)
735
+ end
736
+
737
+ class DisableProviderRequest < Base
738
+ field :provider_id, "ProviderId", required: true
739
+ end
740
+
741
+ class LogoutRequest < Base; end
742
+
743
+ class NewSessionRequest < Base
744
+ field :cwd, :string, required: true
745
+ field :additional_directories, Types::List.new(:string, skip_invalid: true), default_on_error: true
746
+ field :mcp_servers, Types::List.new("McpServer", skip_invalid: true), required: true, default_on_error: true
747
+ end
748
+
749
+ class HttpHeader < Base
750
+ field :name, :string, required: true
751
+ field :value, :string, required: true
752
+ end
753
+
754
+ class McpServerHttp < Base
755
+ field :name, :string, required: true
756
+ field :url, :string, required: true
757
+ field :headers, Types::List.new("HttpHeader"), required: true
758
+ end
759
+
760
+ class McpServerSse < Base
761
+ field :name, :string, required: true
762
+ field :url, :string, required: true
763
+ field :headers, Types::List.new("HttpHeader"), required: true
764
+ end
765
+
766
+ class McpServerAcp < Base
767
+ field :name, :string, required: true
768
+ field :server_id, "McpServerAcpId", required: true
769
+ end
770
+
771
+ class McpServerStdio < Base
772
+ field :name, :string, required: true
773
+ field :command, :string, required: true
774
+ field :args, Types::List.new(:string), required: true
775
+ field :env, Types::List.new("EnvVariable"), required: true
776
+ end
777
+
778
+ class LoadSessionRequest < Base
779
+ field :mcp_servers, Types::List.new("McpServer", skip_invalid: true), required: true, default_on_error: true
780
+ field :cwd, :string, required: true
781
+ field :additional_directories, Types::List.new(:string, skip_invalid: true), default_on_error: true
782
+ field :session_id, "SessionId", required: true
783
+ end
784
+
785
+ class ListSessionsRequest < Base
786
+ field :cwd, :string
787
+ field :cursor, :string
788
+ end
789
+
790
+ class DeleteSessionRequest < Base
791
+ field :session_id, "SessionId", required: true
792
+ end
793
+
794
+ class ForkSessionRequest < Base
795
+ field :session_id, "SessionId", required: true
796
+ field :cwd, :string, required: true
797
+ field :additional_directories, Types::List.new(:string, skip_invalid: true), default_on_error: true
798
+ field :mcp_servers, Types::List.new("McpServer", skip_invalid: true), default_on_error: true
799
+ end
800
+
801
+ class ResumeSessionRequest < Base
802
+ field :session_id, "SessionId", required: true
803
+ field :cwd, :string, required: true
804
+ field :additional_directories, Types::List.new(:string, skip_invalid: true), default_on_error: true
805
+ field :mcp_servers, Types::List.new("McpServer", skip_invalid: true), default_on_error: true
806
+ end
807
+
808
+ class CloseSessionRequest < Base
809
+ field :session_id, "SessionId", required: true
810
+ end
811
+
812
+ class SetSessionModeRequest < Base
813
+ field :session_id, "SessionId", required: true
814
+ field :mode_id, "SessionModeId", required: true
815
+ end
816
+
817
+ class PromptRequest < Base
818
+ field :session_id, "SessionId", required: true
819
+ field :prompt, Types::List.new("ContentBlock"), required: true
820
+ end
821
+
822
+ class StartNesRequest < Base
823
+ field :workspace_uri, :string, default_on_error: true
824
+ field :workspace_folders, Types::List.new("WorkspaceFolder")
825
+ field :repository, "NesRepository", default_on_error: true
826
+ end
827
+
828
+ class WorkspaceFolder < Base
829
+ field :uri, :string, required: true
830
+ field :name, :string, required: true
831
+ end
832
+
833
+ class NesRepository < Base
834
+ field :name, :string, required: true
835
+ field :owner, :string, required: true
836
+ field :remote_url, :string, required: true
837
+ end
838
+
839
+ class SuggestNesRequest < Base
840
+ field :session_id, "SessionId", required: true
841
+ field :uri, :string, required: true
842
+ field :version, :integer, required: true
843
+ field :position, "Position", required: true
844
+ field :selection, "Range"
845
+ field :trigger_kind, "NesTriggerKind", required: true
846
+ field :context, "NesSuggestContext"
847
+ end
848
+
849
+ class NesSuggestContext < Base
850
+ field :recent_files, Types::List.new("NesRecentFile")
851
+ field :related_snippets, Types::List.new("NesRelatedSnippet")
852
+ field :edit_history, Types::List.new("NesEditHistoryEntry")
853
+ field :user_actions, Types::List.new("NesUserAction")
854
+ field :open_files, Types::List.new("NesOpenFile")
855
+ field :diagnostics, Types::List.new("NesDiagnostic")
856
+ end
857
+
858
+ class NesRecentFile < Base
859
+ field :uri, :string, required: true
860
+ field :language_id, :string, required: true
861
+ field :text, :string, required: true
862
+ end
863
+
864
+ class NesRelatedSnippet < Base
865
+ field :uri, :string, required: true
866
+ field :excerpts, Types::List.new("NesExcerpt"), required: true
867
+ end
868
+
869
+ class NesExcerpt < Base
870
+ field :start_line, :integer, required: true
871
+ field :end_line, :integer, required: true
872
+ field :text, :string, required: true
873
+ end
874
+
875
+ class NesEditHistoryEntry < Base
876
+ field :uri, :string, required: true
877
+ field :diff, :string, required: true
878
+ end
879
+
880
+ class NesUserAction < Base
881
+ field :action, :string, required: true
882
+ field :uri, :string, required: true
883
+ field :position, "Position", required: true
884
+ field :timestamp_ms, :integer, required: true
885
+ end
886
+
887
+ class NesOpenFile < Base
888
+ field :uri, :string, required: true
889
+ field :language_id, :string, required: true
890
+ field :visible_range, "Range", default_on_error: true
891
+ field :last_focused_ms, :integer, default_on_error: true
892
+ end
893
+
894
+ class NesDiagnostic < Base
895
+ field :uri, :string, required: true
896
+ field :range, "Range", required: true
897
+ field :severity, "NesDiagnosticSeverity", required: true
898
+ field :message, :string, required: true
899
+ end
900
+
901
+ class CloseNesRequest < Base
902
+ field :session_id, "SessionId", required: true
903
+ end
904
+
905
+ class WriteTextFileResponse < Base; end
906
+
907
+ class ReadTextFileResponse < Base
908
+ field :content, :string, required: true
909
+ end
910
+
911
+ class RequestPermissionResponse < Base
912
+ field :outcome, "RequestPermissionOutcome", required: true
913
+ end
914
+
915
+ class SelectedPermissionOutcome < Base
916
+ field :option_id, "PermissionOptionId", required: true
917
+ end
918
+
919
+ class CreateTerminalResponse < Base
920
+ field :terminal_id, "TerminalId", required: true
921
+ end
922
+
923
+ class TerminalOutputResponse < Base
924
+ field :output, :string, required: true
925
+ field :truncated, :boolean, required: true
926
+ field :exit_status, "TerminalExitStatus", default_on_error: true
927
+ end
928
+
929
+ class TerminalExitStatus < Base
930
+ field :exit_code, :integer, default_on_error: true
931
+ field :signal, :string, default_on_error: true
932
+ end
933
+
934
+ class ReleaseTerminalResponse < Base; end
935
+
936
+ class WaitForTerminalExitResponse < Base
937
+ field :exit_code, :integer, default_on_error: true
938
+ field :signal, :string, default_on_error: true
939
+ end
940
+
941
+ class KillTerminalResponse < Base; end
942
+
943
+ class ElicitationAcceptAction < Base
944
+ field :content, Types::Map.new("ElicitationContentValue")
945
+ end
946
+
947
+ class ConnectMcpResponse < Base
948
+ field :connection_id, "McpConnectionId", required: true
949
+ end
950
+
951
+ class DisconnectMcpResponse < Base; end
952
+
953
+ class CancelNotification < Base
954
+ field :session_id, "SessionId", required: true
955
+ end
956
+
957
+ class DidOpenDocumentNotification < Base
958
+ field :session_id, "SessionId", required: true
959
+ field :uri, :string, required: true
960
+ field :language_id, :string, required: true
961
+ field :version, :integer, required: true
962
+ field :text, :string, required: true
963
+ end
964
+
965
+ class DidChangeDocumentNotification < Base
966
+ field :session_id, "SessionId", required: true
967
+ field :uri, :string, required: true
968
+ field :version, :integer, required: true
969
+ field :content_changes, Types::List.new("TextDocumentContentChangeEvent", skip_invalid: true), required: true, default_on_error: true
970
+ end
971
+
972
+ class TextDocumentContentChangeEvent < Base
973
+ field :range, "Range"
974
+ field :text, :string, required: true
975
+ end
976
+
977
+ class DidCloseDocumentNotification < Base
978
+ field :session_id, "SessionId", required: true
979
+ field :uri, :string, required: true
980
+ end
981
+
982
+ class DidSaveDocumentNotification < Base
983
+ field :session_id, "SessionId", required: true
984
+ field :uri, :string, required: true
985
+ end
986
+
987
+ class DidFocusDocumentNotification < Base
988
+ field :session_id, "SessionId", required: true
989
+ field :uri, :string, required: true
990
+ field :version, :integer, required: true
991
+ field :position, "Position", required: true
992
+ field :visible_range, "Range", required: true
993
+ end
994
+
995
+ class AcceptNesNotification < Base
996
+ field :session_id, "SessionId", required: true
997
+ field :id, "NesSuggestionId", required: true
998
+ end
999
+
1000
+ class RejectNesNotification < Base
1001
+ field :session_id, "SessionId", required: true
1002
+ field :id, "NesSuggestionId", required: true
1003
+ field :reason, "NesRejectReason", default_on_error: true
1004
+ end
1005
+
1006
+ class CancelRequestNotification < Base
1007
+ field :request_id, "RequestId", required: true
1008
+ end
1009
+
1010
+ class ContentToolCallContent < Content
1011
+ field :type, :string, const: "content"
1012
+ end
1013
+
1014
+ class FileEditToolCallContent < Diff
1015
+ field :type, :string, const: "diff"
1016
+ end
1017
+
1018
+ class TerminalToolCallContent < Terminal
1019
+ field :type, :string, const: "terminal"
1020
+ end
1021
+
1022
+ class TextContentBlock < TextContent
1023
+ field :type, :string, const: "text"
1024
+ end
1025
+
1026
+ class ImageContentBlock < ImageContent
1027
+ field :type, :string, const: "image"
1028
+ end
1029
+
1030
+ class AudioContentBlock < AudioContent
1031
+ field :type, :string, const: "audio"
1032
+ end
1033
+
1034
+ class ResourceContentBlock < ResourceLink
1035
+ field :type, :string, const: "resource_link"
1036
+ end
1037
+
1038
+ class EmbeddedResourceContentBlock < EmbeddedResource
1039
+ field :type, :string, const: "resource"
1040
+ end
1041
+
1042
+ class CreateFormSessionElicitationRequest < Base
1043
+ field :message, :string, required: true
1044
+ field :mode, :string, const: "form"
1045
+ field :requested_schema, "ElicitationSchema", required: true
1046
+ field :session_id, "SessionId", required: true
1047
+ field :tool_call_id, "ToolCallId", default_on_error: true
1048
+ end
1049
+
1050
+ class CreateFormRequestElicitationRequest < Base
1051
+ field :message, :string, required: true
1052
+ field :mode, :string, const: "form"
1053
+ field :requested_schema, "ElicitationSchema", required: true
1054
+ field :request_id, "RequestId", required: true
1055
+ end
1056
+
1057
+ class CreateUrlSessionElicitationRequest < Base
1058
+ field :message, :string, required: true
1059
+ field :mode, :string, const: "url"
1060
+ field :elicitation_id, "ElicitationId", required: true
1061
+ field :url, :string, required: true
1062
+ field :session_id, "SessionId", required: true
1063
+ field :tool_call_id, "ToolCallId", default_on_error: true
1064
+ end
1065
+
1066
+ class CreateUrlRequestElicitationRequest < Base
1067
+ field :message, :string, required: true
1068
+ field :mode, :string, const: "url"
1069
+ field :elicitation_id, "ElicitationId", required: true
1070
+ field :url, :string, required: true
1071
+ field :request_id, "RequestId", required: true
1072
+ end
1073
+
1074
+ class CreateOtherSessionElicitationRequest < Base
1075
+ field :message, :string, required: true
1076
+ field :mode, :string, required: true
1077
+ field :session_id, "SessionId", required: true
1078
+ field :tool_call_id, "ToolCallId", default_on_error: true
1079
+ end
1080
+
1081
+ class CreateOtherRequestElicitationRequest < Base
1082
+ field :message, :string, required: true
1083
+ field :mode, :string, required: true
1084
+ field :request_id, "RequestId", required: true
1085
+ end
1086
+
1087
+ class ElicitationStringPropertySchema < StringPropertySchema
1088
+ field :type, :string, const: "string"
1089
+ end
1090
+
1091
+ class ElicitationNumberPropertySchema < NumberPropertySchema
1092
+ field :type, :string, const: "number"
1093
+ end
1094
+
1095
+ class ElicitationIntegerPropertySchema < IntegerPropertySchema
1096
+ field :type, :string, const: "integer"
1097
+ end
1098
+
1099
+ class ElicitationBooleanPropertySchema < BooleanPropertySchema
1100
+ field :type, :string, const: "boolean"
1101
+ end
1102
+
1103
+ class ElicitationMultiSelectPropertySchema < MultiSelectPropertySchema
1104
+ field :type, :string, const: "array"
1105
+ end
1106
+
1107
+ class ElicitationOtherPropertySchema < Base
1108
+ field :type, :string, required: true
1109
+ end
1110
+
1111
+ class StringMultiSelectItems < StringMultiSelectItemsBase
1112
+ field :type, :string, const: "string"
1113
+ end
1114
+
1115
+ class OtherMultiSelectItems < Base
1116
+ field :type, :string, required: true
1117
+ end
1118
+
1119
+ class ElicitationFormSessionMode < Base
1120
+ field :requested_schema, "ElicitationSchema", required: true
1121
+ field :session_id, "SessionId", required: true
1122
+ field :tool_call_id, "ToolCallId", default_on_error: true
1123
+ end
1124
+
1125
+ class ElicitationFormRequestMode < Base
1126
+ field :requested_schema, "ElicitationSchema", required: true
1127
+ field :request_id, "RequestId", required: true
1128
+ end
1129
+
1130
+ class ElicitationUrlSessionMode < Base
1131
+ field :elicitation_id, "ElicitationId", required: true
1132
+ field :url, :string, required: true
1133
+ field :session_id, "SessionId", required: true
1134
+ field :tool_call_id, "ToolCallId", default_on_error: true
1135
+ end
1136
+
1137
+ class ElicitationUrlRequestMode < Base
1138
+ field :elicitation_id, "ElicitationId", required: true
1139
+ field :url, :string, required: true
1140
+ field :request_id, "RequestId", required: true
1141
+ end
1142
+
1143
+ class TerminalAuthMethod < AuthMethodTerminal
1144
+ field :type, :string, const: "terminal"
1145
+ end
1146
+
1147
+ class SessionConfigOptionSelect < Base
1148
+ field :id, "SessionConfigId", required: true
1149
+ field :name, :string, required: true
1150
+ field :description, :string, default_on_error: true
1151
+ field :category, "SessionConfigOptionCategory", default_on_error: true
1152
+ field :type, :string, const: "select"
1153
+ field :current_value, "SessionConfigValueId", required: true
1154
+ field :options, "SessionConfigSelectOptions", required: true
1155
+ end
1156
+
1157
+ class SessionConfigOptionBoolean < Base
1158
+ field :id, "SessionConfigId", required: true
1159
+ field :name, :string, required: true
1160
+ field :description, :string, default_on_error: true
1161
+ field :category, "SessionConfigOptionCategory", default_on_error: true
1162
+ field :type, :string, const: "boolean"
1163
+ field :current_value, :boolean, required: true
1164
+ end
1165
+
1166
+ class NesEditSuggestionVariant < NesEditSuggestion
1167
+ field :kind, :string, const: "edit"
1168
+ end
1169
+
1170
+ class NesJumpSuggestionVariant < NesJumpSuggestion
1171
+ field :kind, :string, const: "jump"
1172
+ end
1173
+
1174
+ class NesRenameSuggestionVariant < NesRenameSuggestion
1175
+ field :kind, :string, const: "rename"
1176
+ end
1177
+
1178
+ class NesSearchAndReplaceSuggestionVariant < NesSearchAndReplaceSuggestion
1179
+ field :kind, :string, const: "searchAndReplace"
1180
+ end
1181
+
1182
+ class UserMessageChunk < ContentChunk
1183
+ field :session_update, :string, const: "user_message_chunk"
1184
+ end
1185
+
1186
+ class AgentMessageChunk < ContentChunk
1187
+ field :session_update, :string, const: "agent_message_chunk"
1188
+ end
1189
+
1190
+ class AgentThoughtChunk < ContentChunk
1191
+ field :session_update, :string, const: "agent_thought_chunk"
1192
+ end
1193
+
1194
+ class ToolCallStart < ToolCall
1195
+ field :session_update, :string, const: "tool_call"
1196
+ end
1197
+
1198
+ class ToolCallProgress < ToolCallUpdate
1199
+ field :session_update, :string, const: "tool_call_update"
1200
+ end
1201
+
1202
+ class AgentPlanUpdate < Plan
1203
+ field :session_update, :string, const: "plan"
1204
+ end
1205
+
1206
+ class AgentPlanContentUpdate < PlanUpdate
1207
+ field :session_update, :string, const: "plan_update"
1208
+ end
1209
+
1210
+ class AgentPlanRemovedUpdate < PlanRemoved
1211
+ field :session_update, :string, const: "plan_removed"
1212
+ end
1213
+
1214
+ class AvailableCommandsUpdate < AvailableCommandsUpdateBase
1215
+ field :session_update, :string, const: "available_commands_update"
1216
+ end
1217
+
1218
+ class CurrentModeUpdate < CurrentModeUpdateBase
1219
+ field :session_update, :string, const: "current_mode_update"
1220
+ end
1221
+
1222
+ class ConfigOptionUpdate < ConfigOptionUpdateBase
1223
+ field :session_update, :string, const: "config_option_update"
1224
+ end
1225
+
1226
+ class SessionInfoUpdate < SessionInfoUpdateBase
1227
+ field :session_update, :string, const: "session_info_update"
1228
+ end
1229
+
1230
+ class UsageUpdate < UsageUpdateBase
1231
+ field :session_update, :string, const: "usage_update"
1232
+ end
1233
+
1234
+ class SessionUpdateCompactionUpdate < CompactionUpdate
1235
+ field :session_update, :string, const: "compaction_update"
1236
+ end
1237
+
1238
+ class SessionUpdateCompactionSummaryChunk < CompactionSummaryChunk
1239
+ field :session_update, :string, const: "compaction_summary_chunk"
1240
+ end
1241
+
1242
+ class PlanUpdateItems < PlanItems
1243
+ field :type, :string, const: "items"
1244
+ end
1245
+
1246
+ class PlanUpdateFile < PlanFile
1247
+ field :type, :string, const: "file"
1248
+ end
1249
+
1250
+ class PlanUpdateMarkdown < PlanMarkdown
1251
+ field :type, :string, const: "markdown"
1252
+ end
1253
+
1254
+ class HttpMcpServer < McpServerHttp
1255
+ field :type, :string, const: "http"
1256
+ end
1257
+
1258
+ class SseMcpServer < McpServerSse
1259
+ field :type, :string, const: "sse"
1260
+ end
1261
+
1262
+ class AcpMcpServer < McpServerAcp
1263
+ field :type, :string, const: "acp"
1264
+ end
1265
+
1266
+ class SetSessionConfigOptionBooleanRequest < Base
1267
+ field :session_id, "SessionId", required: true
1268
+ field :config_id, "SessionConfigId", required: true
1269
+ field :value, :boolean, required: true
1270
+ field :type, :string, const: "boolean"
1271
+ end
1272
+
1273
+ class SetSessionConfigOptionSelectRequest < Base
1274
+ field :session_id, "SessionId", required: true
1275
+ field :config_id, "SessionConfigId", required: true
1276
+ field :value, "SessionConfigValueId", required: true
1277
+ end
1278
+
1279
+ class DeniedOutcome < Base
1280
+ field :outcome, :string, const: "cancelled"
1281
+ end
1282
+
1283
+ class AllowedOutcome < SelectedPermissionOutcome
1284
+ field :outcome, :string, const: "selected"
1285
+ end
1286
+
1287
+ class AcceptElicitationResponse < ElicitationAcceptAction
1288
+ field :action, :string, const: "accept"
1289
+ end
1290
+
1291
+ class DeclineElicitationResponse < Base
1292
+ field :action, :string, const: "decline"
1293
+ end
1294
+
1295
+ class CancelElicitationResponse < Base
1296
+ field :action, :string, const: "cancel"
1297
+ end
1298
+
1299
+ class OtherElicitationResponse < Base
1300
+ field :action, :string, required: true
1301
+ end
1302
+
1303
+ RequestId = Types::ANY
1304
+ SessionId = Types::STRING
1305
+ ToolCallId = Types::STRING
1306
+ ToolKind = Types::Enum.new(["read", "edit", "delete", "move", "search", "execute", "think", "fetch", "switch_mode", "other"])
1307
+ ToolCallStatus = Types::Enum.new(["pending", "in_progress", "completed", "failed"])
1308
+ ToolCallContent = Types::Union.new(tag: "type", tagged: { "content" => ["ContentToolCallContent"], "diff" => ["FileEditToolCallContent"], "terminal" => ["TerminalToolCallContent"] })
1309
+ ContentBlock = Types::Union.new(tag: "type", tagged: { "text" => ["TextContentBlock"], "image" => ["ImageContentBlock"], "audio" => ["AudioContentBlock"], "resource_link" => ["ResourceContentBlock"], "resource" => ["EmbeddedResourceContentBlock"] })
1310
+ Role = Types::Enum.new(["assistant", "user"])
1311
+ EmbeddedResourceResource = Types::Union.new(untagged: ["TextResourceContents", "BlobResourceContents"])
1312
+ TerminalId = Types::STRING
1313
+ PermissionOptionId = Types::STRING
1314
+ PermissionOptionKind = Types::Enum.new(["allow_once", "allow_always", "reject_once", "reject_always"])
1315
+ CreateElicitationRequest = Types::Union.new(tag: "mode", tagged: { "form" => ["CreateFormSessionElicitationRequest", "CreateFormRequestElicitationRequest"], "url" => ["CreateUrlSessionElicitationRequest", "CreateUrlRequestElicitationRequest"] }, untagged: ["CreateOtherSessionElicitationRequest", "CreateOtherRequestElicitationRequest"])
1316
+ ElicitationSchemaType = Types::Enum.new(["object"])
1317
+ ElicitationPropertySchema = Types::Union.new(tag: "type", tagged: { "string" => ["ElicitationStringPropertySchema"], "number" => ["ElicitationNumberPropertySchema"], "integer" => ["ElicitationIntegerPropertySchema"], "boolean" => ["ElicitationBooleanPropertySchema"], "array" => ["ElicitationMultiSelectPropertySchema"] }, untagged: ["ElicitationOtherPropertySchema"])
1318
+ StringFormat = Types::Enum.new(["email", "uri", "date", "date-time"])
1319
+ MultiSelectItems = Types::Union.new(tag: "type", tagged: { "string" => ["StringMultiSelectItems"] }, untagged: ["OtherMultiSelectItems", "TitledMultiSelectItems"])
1320
+ ElicitationFormMode = Types::Union.new(untagged: ["ElicitationFormSessionMode", "ElicitationFormRequestMode"])
1321
+ ElicitationId = Types::STRING
1322
+ ElicitationUrlMode = Types::Union.new(untagged: ["ElicitationUrlSessionMode", "ElicitationUrlRequestMode"])
1323
+ McpServerAcpId = Types::STRING
1324
+ McpConnectionId = Types::STRING
1325
+ ExtRequest = Types::ANY
1326
+ ProtocolVersion = Types::PROTOCOL_VERSION
1327
+ TextDocumentSyncKind = Types::Enum.new(["full", "incremental"])
1328
+ PositionEncodingKind = Types::Enum.new(["utf-16", "utf-32", "utf-8"])
1329
+ AuthMethod = Types::Union.new(tag: "type", tagged: { "terminal" => ["TerminalAuthMethod"] }, untagged: ["AuthMethodAgent"])
1330
+ AuthMethodId = Types::STRING
1331
+ ProviderId = Types::STRING
1332
+ LlmProtocol = Types::Enum.new(["anthropic", "openai", "azure", "vertex", "bedrock"], open: true)
1333
+ SessionModeId = Types::STRING
1334
+ SessionConfigOption = Types::Union.new(tag: "type", tagged: { "select" => ["SessionConfigOptionSelect"], "boolean" => ["SessionConfigOptionBoolean"] })
1335
+ SessionConfigId = Types::STRING
1336
+ SessionConfigOptionCategory = Types::Enum.new(["mode", "model", "model_config", "thought_level"], open: true)
1337
+ SessionConfigValueId = Types::STRING
1338
+ SessionConfigSelectOptions = Types::Union.new(untagged: [Types::List.new("SessionConfigSelectOption"), Types::List.new("SessionConfigSelectGroup")])
1339
+ SessionConfigGroupId = Types::STRING
1340
+ StopReason = Types::Enum.new(["end_turn", "max_tokens", "max_turn_requests", "refusal", "cancelled"])
1341
+ NesSuggestion = Types::Union.new(tag: "kind", tagged: { "edit" => ["NesEditSuggestionVariant"], "jump" => ["NesJumpSuggestionVariant"], "rename" => ["NesRenameSuggestionVariant"], "searchAndReplace" => ["NesSearchAndReplaceSuggestionVariant"] })
1342
+ NesSuggestionId = Types::STRING
1343
+ ExtResponse = Types::ANY
1344
+ MessageMcpResponse = Types::ANY
1345
+ ErrorCode = Types::INTEGER
1346
+ SessionUpdate = Types::Union.new(tag: "sessionUpdate", tagged: { "user_message_chunk" => ["UserMessageChunk"], "agent_message_chunk" => ["AgentMessageChunk"], "agent_thought_chunk" => ["AgentThoughtChunk"], "tool_call" => ["ToolCallStart"], "tool_call_update" => ["ToolCallProgress"], "plan" => ["AgentPlanUpdate"], "plan_update" => ["AgentPlanContentUpdate"], "plan_removed" => ["AgentPlanRemovedUpdate"], "available_commands_update" => ["AvailableCommandsUpdate"], "current_mode_update" => ["CurrentModeUpdate"], "config_option_update" => ["ConfigOptionUpdate"], "session_info_update" => ["SessionInfoUpdate"], "usage_update" => ["UsageUpdate"], "compaction_update" => ["SessionUpdateCompactionUpdate"], "compaction_summary_chunk" => ["SessionUpdateCompactionSummaryChunk"] })
1347
+ MessageId = Types::STRING
1348
+ PlanEntryPriority = Types::Enum.new(["high", "medium", "low"])
1349
+ PlanEntryStatus = Types::Enum.new(["pending", "in_progress", "completed"])
1350
+ PlanUpdateContent = Types::Union.new(tag: "type", tagged: { "items" => ["PlanUpdateItems"], "file" => ["PlanUpdateFile"], "markdown" => ["PlanUpdateMarkdown"] })
1351
+ PlanId = Types::STRING
1352
+ AvailableCommandInput = Types::Union.new(untagged: ["UnstructuredCommandInput"])
1353
+ CompactionId = Types::STRING
1354
+ CompactionStatus = Types::Enum.new(["in_progress", "completed", "failed", "cancelled"], open: true)
1355
+ ExtNotification = Types::ANY
1356
+ McpServer = Types::Union.new(tag: "type", tagged: { "http" => ["HttpMcpServer"], "sse" => ["SseMcpServer"], "acp" => ["AcpMcpServer"] }, untagged: ["McpServerStdio"])
1357
+ SetSessionConfigOptionRequest = Types::Union.new(tag: "type", tagged: { "boolean" => ["SetSessionConfigOptionBooleanRequest"] }, untagged: ["SetSessionConfigOptionSelectRequest"])
1358
+ NesTriggerKind = Types::Enum.new(["automatic", "diagnostic", "manual"])
1359
+ NesDiagnosticSeverity = Types::Enum.new(["error", "warning", "information", "hint"])
1360
+ RequestPermissionOutcome = Types::Union.new(tag: "outcome", tagged: { "cancelled" => ["DeniedOutcome"], "selected" => ["AllowedOutcome"] })
1361
+ CreateElicitationResponse = Types::Union.new(tag: "action", tagged: { "accept" => ["AcceptElicitationResponse"], "decline" => ["DeclineElicitationResponse"], "cancel" => ["CancelElicitationResponse"] }, untagged: ["OtherElicitationResponse"])
1362
+ ElicitationContentValue = Types::ANY
1363
+ NesRejectReason = Types::Enum.new(["rejected", "ignored", "replaced", "cancelled"])
1364
+ end
1365
+ end