-
Notifications
You must be signed in to change notification settings - Fork 52
Expand file tree
/
Copy pathapi.lua
More file actions
111 lines (103 loc) · 4.07 KB
/
api.lua
File metadata and controls
111 lines (103 loc) · 4.07 KB
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
local window = require('opencode.commands.handlers.window').actions
local session = require('opencode.commands.handlers.session').actions
local diff = require('opencode.commands.handlers.diff').actions
local workflow = require('opencode.commands.handlers.workflow').actions
local permission = require('opencode.commands.handlers.permission').actions
local agent = require('opencode.commands.handlers.agent').actions
local window_api = {
swap_position = window.swap_position,
toggle_zoom = window.toggle_zoom,
toggle_input = window.toggle_input,
open_input = window.open_input,
open_output = window.open_output,
close = window.close,
hide = window.hide,
get_window_state = window.get_window_state,
toggle_focus = window.toggle_focus,
toggle_pane = window.toggle_pane,
focus_input = window.focus_input,
cancel = window.cancel,
toggle = window.toggle,
}
local session_api = {
open_input_new_session = session.open_input_new_session,
select_session = session.select_session,
select_child_session = session.select_child_session,
compact_session = session.compact_session,
share = session.share,
unshare = session.unshare,
initialize = session.initialize,
open_input_new_session_with_title = session.open_input_new_session_with_title,
rename_session = session.rename_session,
}
local diff_api = {
diff_open = diff.diff_open,
diff_next = diff.diff_next,
diff_prev = diff.diff_prev,
diff_close = diff.diff_close,
diff_revert_all = diff.diff_revert_all,
diff_revert_selected_file = diff.diff_revert_selected_file,
diff_restore_snapshot_file = diff.diff_restore_snapshot_file,
diff_restore_snapshot_all = diff.diff_restore_snapshot_all,
diff_revert_all_last_prompt = diff.diff_revert_all_last_prompt,
diff_revert_this = diff.diff_revert_this,
diff_revert_this_last_prompt = diff.diff_revert_this_last_prompt,
set_review_breakpoint = diff.set_review_breakpoint,
}
local workflow_api = {
paste_image = workflow.paste_image,
run = workflow.run,
run_new_session = workflow.run_new_session,
select_history = workflow.select_history,
quick_chat = workflow.quick_chat,
prev_history = workflow.prev_history,
next_history = workflow.next_history,
prev_prompt_history = workflow.prev_prompt_history,
next_prompt_history = workflow.next_prompt_history,
next_message = workflow.next_message,
prev_message = workflow.prev_message,
mention_file = workflow.mention_file,
mention = workflow.mention,
context_items = workflow.context_items,
slash_commands = workflow.slash_commands,
references = workflow.references,
debug_output = workflow.debug_output,
debug_message = workflow.debug_message,
debug_session = workflow.debug_session,
with_header = workflow.with_header,
help = workflow.help,
undo = workflow.undo,
timeline = workflow.timeline,
fork_session = workflow.fork_session,
redo = workflow.redo,
toggle_tool_output = workflow.toggle_tool_output,
toggle_reasoning_output = workflow.toggle_reasoning_output,
submit_input_prompt = workflow.submit_input_prompt,
mcp = workflow.mcp,
commands_list = workflow.commands_list,
run_user_command = workflow.run_user_command,
review = workflow.review,
add_visual_selection = workflow.add_visual_selection,
add_visual_selection_inline = workflow.add_visual_selection_inline,
}
local permission_api = {
respond_to_permission = permission.respond_to_permission,
permission_accept = permission.permission_accept,
permission_accept_all = permission.permission_accept_all,
permission_deny = permission.permission_deny,
question_answer = permission.question_answer,
question_other = permission.question_other,
}
local agent_api = {
configure_provider = agent.configure_provider,
configure_variant = agent.configure_variant,
cycle_variant = agent.cycle_variant,
agent_plan = agent.agent_plan,
agent_build = agent.agent_build,
select_agent = agent.select_agent,
switch_mode = agent.switch_mode,
current_model = agent.current_model,
}
---@type OpencodeCommandApi
local M = vim.tbl_extend('force', {}, window_api, session_api, diff_api, workflow_api, permission_api, agent_api)
return M