summaryrefslogtreecommitdiffhomepage
path: root/packages/sdk/python/src/opencode_ai/models/keybinds_config.py
blob: 034e9171cbc01859b8b4817ac04743a12a6b5b76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
from collections.abc import Mapping
from typing import Any, TypeVar, Union

from attrs import define as _attrs_define

from ..types import UNSET, Unset

T = TypeVar("T", bound="KeybindsConfig")


@_attrs_define
class KeybindsConfig:
    """Custom keybind configurations

    Attributes:
        leader (Union[Unset, str]): Leader key for keybind combinations Default: 'ctrl+x'.
        app_help (Union[Unset, str]): Show help dialog Default: '<leader>h'.
        app_exit (Union[Unset, str]): Exit the application Default: 'ctrl+c,<leader>q'.
        editor_open (Union[Unset, str]): Open external editor Default: '<leader>e'.
        theme_list (Union[Unset, str]): List available themes Default: '<leader>t'.
        project_init (Union[Unset, str]): Create/update AGENTS.md Default: '<leader>i'.
        tool_details (Union[Unset, str]): Toggle tool details Default: '<leader>d'.
        thinking_blocks (Union[Unset, str]): Toggle thinking blocks Default: '<leader>b'.
        session_export (Union[Unset, str]): Export session to editor Default: '<leader>x'.
        session_new (Union[Unset, str]): Create a new session Default: '<leader>n'.
        session_list (Union[Unset, str]): List all sessions Default: '<leader>l'.
        session_timeline (Union[Unset, str]): Show session timeline Default: '<leader>g'.
        session_share (Union[Unset, str]): Share current session Default: '<leader>s'.
        session_unshare (Union[Unset, str]): Unshare current session Default: 'none'.
        session_interrupt (Union[Unset, str]): Interrupt current session Default: 'esc'.
        session_compact (Union[Unset, str]): Compact the session Default: '<leader>c'.
        session_child_cycle (Union[Unset, str]): Cycle to next child session Default: 'ctrl+right'.
        session_child_cycle_reverse (Union[Unset, str]): Cycle to previous child session Default: 'ctrl+left'.
        messages_page_up (Union[Unset, str]): Scroll messages up by one page Default: 'pgup'.
        messages_page_down (Union[Unset, str]): Scroll messages down by one page Default: 'pgdown'.
        messages_half_page_up (Union[Unset, str]): Scroll messages up by half page Default: 'ctrl+alt+u'.
        messages_half_page_down (Union[Unset, str]): Scroll messages down by half page Default: 'ctrl+alt+d'.
        messages_first (Union[Unset, str]): Navigate to first message Default: 'ctrl+g'.
        messages_last (Union[Unset, str]): Navigate to last message Default: 'ctrl+alt+g'.
        messages_copy (Union[Unset, str]): Copy message Default: '<leader>y'.
        messages_undo (Union[Unset, str]): Undo message Default: '<leader>u'.
        messages_redo (Union[Unset, str]): Redo message Default: '<leader>r'.
        model_list (Union[Unset, str]): List available models Default: '<leader>m'.
        model_cycle_recent (Union[Unset, str]): Next recent model Default: 'f2'.
        model_cycle_recent_reverse (Union[Unset, str]): Previous recent model Default: 'shift+f2'.
        model_cycle_favorite (Union[Unset, str]): Next favorite model Default: 'none'.
        model_cycle_favorite_reverse (Union[Unset, str]): Previous favorite model Default: 'none'.
        agent_list (Union[Unset, str]): List agents Default: '<leader>a'.
        agent_cycle (Union[Unset, str]): Next agent Default: 'tab'.
        agent_cycle_reverse (Union[Unset, str]): Previous agent Default: 'shift+tab'.
        input_clear (Union[Unset, str]): Clear input field Default: 'ctrl+c'.
        input_paste (Union[Unset, str]): Paste from clipboard Default: 'ctrl+v'.
        input_submit (Union[Unset, str]): Submit input Default: 'enter'.
        input_newline (Union[Unset, str]): Insert newline in input Default: 'shift+enter,ctrl+j'.
        switch_mode (Union[Unset, str]): @deprecated use agent_cycle. Next mode Default: 'none'.
        switch_mode_reverse (Union[Unset, str]): @deprecated use agent_cycle_reverse. Previous mode Default: 'none'.
        switch_agent (Union[Unset, str]): @deprecated use agent_cycle. Next agent Default: 'tab'.
        switch_agent_reverse (Union[Unset, str]): @deprecated use agent_cycle_reverse. Previous agent Default:
            'shift+tab'.
        file_list (Union[Unset, str]): @deprecated Currently not available. List files Default: 'none'.
        file_close (Union[Unset, str]): @deprecated Close file Default: 'none'.
        file_search (Union[Unset, str]): @deprecated Search file Default: 'none'.
        file_diff_toggle (Union[Unset, str]): @deprecated Split/unified diff Default: 'none'.
        messages_previous (Union[Unset, str]): @deprecated Navigate to previous message Default: 'none'.
        messages_next (Union[Unset, str]): @deprecated Navigate to next message Default: 'none'.
        messages_layout_toggle (Union[Unset, str]): @deprecated Toggle layout Default: 'none'.
        messages_revert (Union[Unset, str]): @deprecated use messages_undo. Revert message Default: 'none'.
    """

    leader: Union[Unset, str] = "ctrl+x"
    app_help: Union[Unset, str] = "<leader>h"
    app_exit: Union[Unset, str] = "ctrl+c,<leader>q"
    editor_open: Union[Unset, str] = "<leader>e"
    theme_list: Union[Unset, str] = "<leader>t"
    project_init: Union[Unset, str] = "<leader>i"
    tool_details: Union[Unset, str] = "<leader>d"
    thinking_blocks: Union[Unset, str] = "<leader>b"
    session_export: Union[Unset, str] = "<leader>x"
    session_new: Union[Unset, str] = "<leader>n"
    session_list: Union[Unset, str] = "<leader>l"
    session_timeline: Union[Unset, str] = "<leader>g"
    session_share: Union[Unset, str] = "<leader>s"
    session_unshare: Union[Unset, str] = "none"
    session_interrupt: Union[Unset, str] = "esc"
    session_compact: Union[Unset, str] = "<leader>c"
    session_child_cycle: Union[Unset, str] = "<leader>right"
    session_child_cycle_reverse: Union[Unset, str] = "<leader>left"
    messages_page_up: Union[Unset, str] = "pgup"
    messages_page_down: Union[Unset, str] = "pgdown"
    messages_half_page_up: Union[Unset, str] = "ctrl+alt+u"
    messages_half_page_down: Union[Unset, str] = "ctrl+alt+d"
    messages_first: Union[Unset, str] = "ctrl+g"
    messages_last: Union[Unset, str] = "ctrl+alt+g"
    messages_copy: Union[Unset, str] = "<leader>y"
    messages_undo: Union[Unset, str] = "<leader>u"
    messages_redo: Union[Unset, str] = "<leader>r"
    model_list: Union[Unset, str] = "<leader>m"
    model_cycle_recent: Union[Unset, str] = "f2"
    model_cycle_recent_reverse: Union[Unset, str] = "shift+f2"
    model_cycle_favorite: Union[Unset, str] = "none"
    model_cycle_favorite_reverse: Union[Unset, str] = "none"
    agent_list: Union[Unset, str] = "<leader>a"
    agent_cycle: Union[Unset, str] = "tab"
    agent_cycle_reverse: Union[Unset, str] = "shift+tab"
    input_clear: Union[Unset, str] = "ctrl+c"
    input_paste: Union[Unset, str] = "ctrl+v"
    input_submit: Union[Unset, str] = "enter"
    input_newline: Union[Unset, str] = "shift+enter,ctrl+j"
    switch_mode: Union[Unset, str] = "none"
    switch_mode_reverse: Union[Unset, str] = "none"
    switch_agent: Union[Unset, str] = "tab"
    switch_agent_reverse: Union[Unset, str] = "shift+tab"
    file_list: Union[Unset, str] = "none"
    file_close: Union[Unset, str] = "none"
    file_search: Union[Unset, str] = "none"
    file_diff_toggle: Union[Unset, str] = "none"
    messages_previous: Union[Unset, str] = "none"
    messages_next: Union[Unset, str] = "none"
    messages_layout_toggle: Union[Unset, str] = "none"
    messages_revert: Union[Unset, str] = "none"

    def to_dict(self) -> dict[str, Any]:
        leader = self.leader

        app_help = self.app_help

        app_exit = self.app_exit

        editor_open = self.editor_open

        theme_list = self.theme_list

        project_init = self.project_init

        tool_details = self.tool_details

        thinking_blocks = self.thinking_blocks

        session_export = self.session_export

        session_new = self.session_new

        session_list = self.session_list

        session_timeline = self.session_timeline

        session_share = self.session_share

        session_unshare = self.session_unshare

        session_interrupt = self.session_interrupt

        session_compact = self.session_compact

        session_child_cycle = self.session_child_cycle

        session_child_cycle_reverse = self.session_child_cycle_reverse

        messages_page_up = self.messages_page_up

        messages_page_down = self.messages_page_down

        messages_half_page_up = self.messages_half_page_up

        messages_half_page_down = self.messages_half_page_down

        messages_first = self.messages_first

        messages_last = self.messages_last

        messages_copy = self.messages_copy

        messages_undo = self.messages_undo

        messages_redo = self.messages_redo

        model_list = self.model_list

        model_cycle_recent = self.model_cycle_recent

        model_cycle_recent_reverse = self.model_cycle_recent_reverse

        model_cycle_favorite = self.model_cycle_favorite

        model_cycle_favorite_reverse = self.model_cycle_favorite_reverse

        agent_list = self.agent_list

        agent_cycle = self.agent_cycle

        agent_cycle_reverse = self.agent_cycle_reverse

        input_clear = self.input_clear

        input_paste = self.input_paste

        input_submit = self.input_submit

        input_newline = self.input_newline

        switch_mode = self.switch_mode

        switch_mode_reverse = self.switch_mode_reverse

        switch_agent = self.switch_agent

        switch_agent_reverse = self.switch_agent_reverse

        file_list = self.file_list

        file_close = self.file_close

        file_search = self.file_search

        file_diff_toggle = self.file_diff_toggle

        messages_previous = self.messages_previous

        messages_next = self.messages_next

        messages_layout_toggle = self.messages_layout_toggle

        messages_revert = self.messages_revert

        field_dict: dict[str, Any] = {}

        field_dict.update({})
        if leader is not UNSET:
            field_dict["leader"] = leader
        if app_help is not UNSET:
            field_dict["app_help"] = app_help
        if app_exit is not UNSET:
            field_dict["app_exit"] = app_exit
        if editor_open is not UNSET:
            field_dict["editor_open"] = editor_open
        if theme_list is not UNSET:
            field_dict["theme_list"] = theme_list
        if project_init is not UNSET:
            field_dict["project_init"] = project_init
        if tool_details is not UNSET:
            field_dict["tool_details"] = tool_details
        if thinking_blocks is not UNSET:
            field_dict["thinking_blocks"] = thinking_blocks
        if session_export is not UNSET:
            field_dict["session_export"] = session_export
        if session_new is not UNSET:
            field_dict["session_new"] = session_new
        if session_list is not UNSET:
            field_dict["session_list"] = session_list
        if session_timeline is not UNSET:
            field_dict["session_timeline"] = session_timeline
        if session_share is not UNSET:
            field_dict["session_share"] = session_share
        if session_unshare is not UNSET:
            field_dict["session_unshare"] = session_unshare
        if session_interrupt is not UNSET:
            field_dict["session_interrupt"] = session_interrupt
        if session_compact is not UNSET:
            field_dict["session_compact"] = session_compact
        if session_child_cycle is not UNSET:
            field_dict["session_child_cycle"] = session_child_cycle
        if session_child_cycle_reverse is not UNSET:
            field_dict["session_child_cycle_reverse"] = session_child_cycle_reverse
        if messages_page_up is not UNSET:
            field_dict["messages_page_up"] = messages_page_up
        if messages_page_down is not UNSET:
            field_dict["messages_page_down"] = messages_page_down
        if messages_half_page_up is not UNSET:
            field_dict["messages_half_page_up"] = messages_half_page_up
        if messages_half_page_down is not UNSET:
            field_dict["messages_half_page_down"] = messages_half_page_down
        if messages_first is not UNSET:
            field_dict["messages_first"] = messages_first
        if messages_last is not UNSET:
            field_dict["messages_last"] = messages_last
        if messages_copy is not UNSET:
            field_dict["messages_copy"] = messages_copy
        if messages_undo is not UNSET:
            field_dict["messages_undo"] = messages_undo
        if messages_redo is not UNSET:
            field_dict["messages_redo"] = messages_redo
        if model_list is not UNSET:
            field_dict["model_list"] = model_list
        if model_cycle_recent is not UNSET:
            field_dict["model_cycle_recent"] = model_cycle_recent
        if model_cycle_recent_reverse is not UNSET:
            field_dict["model_cycle_recent_reverse"] = model_cycle_recent_reverse
        if model_cycle_favorite is not UNSET:
            field_dict["model_cycle_favorite"] = model_cycle_favorite
        if model_cycle_favorite_reverse is not UNSET:
            field_dict["model_cycle_favorite_reverse"] = model_cycle_favorite_reverse
        if agent_list is not UNSET:
            field_dict["agent_list"] = agent_list
        if agent_cycle is not UNSET:
            field_dict["agent_cycle"] = agent_cycle
        if agent_cycle_reverse is not UNSET:
            field_dict["agent_cycle_reverse"] = agent_cycle_reverse
        if input_clear is not UNSET:
            field_dict["input_clear"] = input_clear
        if input_paste is not UNSET:
            field_dict["input_paste"] = input_paste
        if input_submit is not UNSET:
            field_dict["input_submit"] = input_submit
        if input_newline is not UNSET:
            field_dict["input_newline"] = input_newline
        if switch_mode is not UNSET:
            field_dict["switch_mode"] = switch_mode
        if switch_mode_reverse is not UNSET:
            field_dict["switch_mode_reverse"] = switch_mode_reverse
        if switch_agent is not UNSET:
            field_dict["switch_agent"] = switch_agent
        if switch_agent_reverse is not UNSET:
            field_dict["switch_agent_reverse"] = switch_agent_reverse
        if file_list is not UNSET:
            field_dict["file_list"] = file_list
        if file_close is not UNSET:
            field_dict["file_close"] = file_close
        if file_search is not UNSET:
            field_dict["file_search"] = file_search
        if file_diff_toggle is not UNSET:
            field_dict["file_diff_toggle"] = file_diff_toggle
        if messages_previous is not UNSET:
            field_dict["messages_previous"] = messages_previous
        if messages_next is not UNSET:
            field_dict["messages_next"] = messages_next
        if messages_layout_toggle is not UNSET:
            field_dict["messages_layout_toggle"] = messages_layout_toggle
        if messages_revert is not UNSET:
            field_dict["messages_revert"] = messages_revert

        return field_dict

    @classmethod
    def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
        d = dict(src_dict)
        leader = d.pop("leader", UNSET)

        app_help = d.pop("app_help", UNSET)

        app_exit = d.pop("app_exit", UNSET)

        editor_open = d.pop("editor_open", UNSET)

        theme_list = d.pop("theme_list", UNSET)

        project_init = d.pop("project_init", UNSET)

        tool_details = d.pop("tool_details", UNSET)

        thinking_blocks = d.pop("thinking_blocks", UNSET)

        session_export = d.pop("session_export", UNSET)

        session_new = d.pop("session_new", UNSET)

        session_list = d.pop("session_list", UNSET)

        session_timeline = d.pop("session_timeline", UNSET)

        session_share = d.pop("session_share", UNSET)

        session_unshare = d.pop("session_unshare", UNSET)

        session_interrupt = d.pop("session_interrupt", UNSET)

        session_compact = d.pop("session_compact", UNSET)

        session_child_cycle = d.pop("session_child_cycle", UNSET)

        session_child_cycle_reverse = d.pop("session_child_cycle_reverse", UNSET)

        messages_page_up = d.pop("messages_page_up", UNSET)

        messages_page_down = d.pop("messages_page_down", UNSET)

        messages_half_page_up = d.pop("messages_half_page_up", UNSET)

        messages_half_page_down = d.pop("messages_half_page_down", UNSET)

        messages_first = d.pop("messages_first", UNSET)

        messages_last = d.pop("messages_last", UNSET)

        messages_copy = d.pop("messages_copy", UNSET)

        messages_undo = d.pop("messages_undo", UNSET)

        messages_redo = d.pop("messages_redo", UNSET)

        model_list = d.pop("model_list", UNSET)

        model_cycle_recent = d.pop("model_cycle_recent", UNSET)

        model_cycle_recent_reverse = d.pop("model_cycle_recent_reverse", UNSET)

        model_cycle_favorite = d.pop("model_cycle_favorite", UNSET)

        model_cycle_favorite_reverse = d.pop("model_cycle_favorite_reverse", UNSET)

        agent_list = d.pop("agent_list", UNSET)

        agent_cycle = d.pop("agent_cycle", UNSET)

        agent_cycle_reverse = d.pop("agent_cycle_reverse", UNSET)

        input_clear = d.pop("input_clear", UNSET)

        input_paste = d.pop("input_paste", UNSET)

        input_submit = d.pop("input_submit", UNSET)

        input_newline = d.pop("input_newline", UNSET)

        switch_mode = d.pop("switch_mode", UNSET)

        switch_mode_reverse = d.pop("switch_mode_reverse", UNSET)

        switch_agent = d.pop("switch_agent", UNSET)

        switch_agent_reverse = d.pop("switch_agent_reverse", UNSET)

        file_list = d.pop("file_list", UNSET)

        file_close = d.pop("file_close", UNSET)

        file_search = d.pop("file_search", UNSET)

        file_diff_toggle = d.pop("file_diff_toggle", UNSET)

        messages_previous = d.pop("messages_previous", UNSET)

        messages_next = d.pop("messages_next", UNSET)

        messages_layout_toggle = d.pop("messages_layout_toggle", UNSET)

        messages_revert = d.pop("messages_revert", UNSET)

        keybinds_config = cls(
            leader=leader,
            app_help=app_help,
            app_exit=app_exit,
            editor_open=editor_open,
            theme_list=theme_list,
            project_init=project_init,
            tool_details=tool_details,
            thinking_blocks=thinking_blocks,
            session_export=session_export,
            session_new=session_new,
            session_list=session_list,
            session_timeline=session_timeline,
            session_share=session_share,
            session_unshare=session_unshare,
            session_interrupt=session_interrupt,
            session_compact=session_compact,
            session_child_cycle=session_child_cycle,
            session_child_cycle_reverse=session_child_cycle_reverse,
            messages_page_up=messages_page_up,
            messages_page_down=messages_page_down,
            messages_half_page_up=messages_half_page_up,
            messages_half_page_down=messages_half_page_down,
            messages_first=messages_first,
            messages_last=messages_last,
            messages_copy=messages_copy,
            messages_undo=messages_undo,
            messages_redo=messages_redo,
            model_list=model_list,
            model_cycle_recent=model_cycle_recent,
            model_cycle_recent_reverse=model_cycle_recent_reverse,
            model_cycle_favorite=model_cycle_favorite,
            model_cycle_favorite_reverse=model_cycle_favorite_reverse,
            agent_list=agent_list,
            agent_cycle=agent_cycle,
            agent_cycle_reverse=agent_cycle_reverse,
            input_clear=input_clear,
            input_paste=input_paste,
            input_submit=input_submit,
            input_newline=input_newline,
            switch_mode=switch_mode,
            switch_mode_reverse=switch_mode_reverse,
            switch_agent=switch_agent,
            switch_agent_reverse=switch_agent_reverse,
            file_list=file_list,
            file_close=file_close,
            file_search=file_search,
            file_diff_toggle=file_diff_toggle,
            messages_previous=messages_previous,
            messages_next=messages_next,
            messages_layout_toggle=messages_layout_toggle,
            messages_revert=messages_revert,
        )

        return keybinds_config