mirror of
https://github.com/ollama/ollama.git
synced 2026-07-23 09:10:53 -05:00
agent: clean up semantics, UX, DX, and procedural code (#17212)
This commit is contained in:
@@ -57,11 +57,15 @@ func (m chatModel) allowAllToolsEnabled() bool {
|
||||
if m.approvalState == nil {
|
||||
return m.defaultAllowAll
|
||||
}
|
||||
return m.approvalState.AllowAll()
|
||||
return m.approvalState.AllGranted()
|
||||
}
|
||||
|
||||
func (m *chatModel) setAllowAllTools(allowAll bool) {
|
||||
m.ensureApprovalState().SetAllowAll(allowAll)
|
||||
if allowAll {
|
||||
m.ensureApprovalState().GrantAll()
|
||||
} else {
|
||||
m.ensureApprovalState().Set(false, nil)
|
||||
}
|
||||
m.opts.AllowAllTools = allowAll
|
||||
}
|
||||
|
||||
@@ -176,7 +180,7 @@ func (m chatModel) resolveApprovalPrompt(choice chatApprovalChoice) (tea.Model,
|
||||
}
|
||||
allowScopes := approvalScopes(prompt.request)
|
||||
if choice.allowTools {
|
||||
m.ensureApprovalState().AllowScopes(allowScopes)
|
||||
m.ensureApprovalState().GrantScopes(allowScopes)
|
||||
}
|
||||
for _, call := range prompt.request.Calls {
|
||||
if idx := m.findToolEntry(call.ToolCallID); idx >= 0 && m.entries[idx].status == "approval" {
|
||||
@@ -386,7 +390,7 @@ func (c *chatApprovalController) preapproved(request coreagent.ApprovalRequest)
|
||||
if c == nil {
|
||||
return coreagent.Approval{}, false
|
||||
}
|
||||
if c.state.AllowAll() {
|
||||
if c.state.AllGranted() {
|
||||
return coreagent.Approval{Allow: true, AllowAll: true}, true
|
||||
}
|
||||
scopes := approvalScopes(request)
|
||||
|
||||
@@ -392,7 +392,7 @@ func TestChatApprovalControllerAutoApprovesAfterFullAccessToggle(t *testing.T) {
|
||||
events := make(chan tea.Msg, 1)
|
||||
state := testApprovalState(false, nil)
|
||||
controller := newChatApprovalController(events, state)
|
||||
state.SetAllowAll(true)
|
||||
state.GrantAll()
|
||||
|
||||
result, err := controller.PromptApproval(context.Background(), testApprovalRequest())
|
||||
if err != nil {
|
||||
|
||||
@@ -75,8 +75,8 @@ func TestChatNewCommandRepaintsFromTop(t *testing.T) {
|
||||
if m.flowPrintedLines != 0 {
|
||||
t.Fatalf("flowPrintedLines = %d, want 0", m.flowPrintedLines)
|
||||
}
|
||||
if m.approvalState.AllowAll() || m.opts.AllowAllTools || m.approvalState.Allows("edit") || m.permissionNotice != "" {
|
||||
t.Fatalf("permissions were not reset: allowAll=%v opts=%v editAllowed=%v notice=%q", m.approvalState.AllowAll(), m.opts.AllowAllTools, m.approvalState.Allows("edit"), m.permissionNotice)
|
||||
if m.approvalState.AllGranted() || m.opts.AllowAllTools || m.approvalState.Allows("edit") || m.permissionNotice != "" {
|
||||
t.Fatalf("permissions were not reset: allowAll=%v opts=%v editAllowed=%v notice=%q", m.approvalState.AllGranted(), m.opts.AllowAllTools, m.approvalState.Allows("edit"), m.permissionNotice)
|
||||
}
|
||||
if msg := cmd(); msg == nil {
|
||||
t.Fatal("repaint command returned nil")
|
||||
@@ -92,10 +92,10 @@ func TestChatNewCommandPreservesLaunchFullAccessDefault(t *testing.T) {
|
||||
|
||||
updated, _ := m.handleSubmit()
|
||||
fm := updated.(chatModel)
|
||||
if !fm.approvalState.AllowAll() || !fm.opts.AllowAllTools {
|
||||
t.Fatalf("full access default was not restored: allowAll=%v opts=%v", fm.approvalState.AllowAll(), fm.opts.AllowAllTools)
|
||||
if !fm.approvalState.AllGranted() || !fm.opts.AllowAllTools {
|
||||
t.Fatalf("full access default was not restored: allowAll=%v opts=%v", fm.approvalState.AllGranted(), fm.opts.AllowAllTools)
|
||||
}
|
||||
fm.approvalState.SetAllowAll(false)
|
||||
fm.approvalState.Set(false, nil)
|
||||
if fm.approvalState.Allows("edit") {
|
||||
t.Fatal("edit scope should be cleared")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user