agent improvement
This commit is contained in:
@@ -21,6 +21,7 @@ class AgentInputPanel(Gtk.Frame):
|
||||
"model-changed": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
||||
"lang-changed": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
||||
"history-toggled": (GObject.SignalFlags.RUN_FIRST, None, (bool,)),
|
||||
"permission-changed": (GObject.SignalFlags.RUN_FIRST, None, (str,)),
|
||||
}
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
@@ -68,6 +69,18 @@ class AgentInputPanel(Gtk.Frame):
|
||||
history_toggle.connect("toggled", lambda b: self.emit("history-toggled", b.get_active()))
|
||||
actions_box.append(history_toggle)
|
||||
|
||||
perm_label = Gtk.Label(label="Perms:")
|
||||
perm_label.add_css_class("dim-label")
|
||||
actions_box.append(perm_label)
|
||||
|
||||
self._perm_modes = ["default", "acceptEdits", "bypassPermissions", "dontAsk", "plan"]
|
||||
self._perm_labels = ["Default", "Accept Edits", "Bypass All", "Don't Ask", "Plan Only"]
|
||||
self._perm_dropdown = Gtk.DropDown.new_from_strings(self._perm_labels)
|
||||
self._perm_dropdown.set_size_request(140, -1)
|
||||
self._perm_dropdown.set_tooltip_text("Claude SDK permission mode")
|
||||
self._perm_dropdown.connect("notify::selected", self._on_perm_changed)
|
||||
actions_box.append(self._perm_dropdown)
|
||||
|
||||
outer.append(actions_box)
|
||||
|
||||
input_row = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=4)
|
||||
@@ -123,3 +136,15 @@ class AgentInputPanel(Gtk.Frame):
|
||||
if idx < len(self._lang_names):
|
||||
lang_code = LANGUAGES[self._lang_names[idx]]
|
||||
self.emit("lang-changed", lang_code or "")
|
||||
|
||||
def _on_perm_changed(self, dropdown, _pspec):
|
||||
idx = dropdown.get_selected()
|
||||
if idx < len(self._perm_modes):
|
||||
self.emit("permission-changed", self._perm_modes[idx])
|
||||
|
||||
def set_permission_mode(self, mode: str) -> None:
|
||||
try:
|
||||
idx = self._perm_modes.index(mode)
|
||||
self._perm_dropdown.set_selected(idx)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user