Merge nucleic/olive-slate-falcon-oah6 into dev
This commit is contained in:
@@ -40,6 +40,7 @@ enum SandboxToolDisplay {
|
|||||||
case "linux_vm_computer", "linux_vm_computer_batch": "Linux VM screen"
|
case "linux_vm_computer", "linux_vm_computer_batch": "Linux VM screen"
|
||||||
case "linux_container": "Linux container"
|
case "linux_container": "Linux container"
|
||||||
case "nucleic_supervise": "Supervising subagents"
|
case "nucleic_supervise": "Supervising subagents"
|
||||||
|
case AskUserQuestion.nucleicToolName: "Question for you"
|
||||||
default: nil
|
default: nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,6 +70,7 @@ enum SandboxToolDisplay {
|
|||||||
case "mac_vm_control": "Managing the macOS VM…"
|
case "mac_vm_control": "Managing the macOS VM…"
|
||||||
case "linux_vm_control": "Managing the Linux VM…"
|
case "linux_vm_control": "Managing the Linux VM…"
|
||||||
case "nucleic_supervise": "Waiting on subagents…"
|
case "nucleic_supervise": "Waiting on subagents…"
|
||||||
|
case AskUserQuestion.nucleicToolName: "Waiting on your answer…"
|
||||||
default: nil
|
default: nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,6 +89,7 @@ enum SandboxToolDisplay {
|
|||||||
case "mac_vm_request_operator": "hand.raised"
|
case "mac_vm_request_operator": "hand.raised"
|
||||||
case "mac_vm_control", "linux_vm_control": "power"
|
case "mac_vm_control", "linux_vm_control": "power"
|
||||||
case "nucleic_supervise": "eye"
|
case "nucleic_supervise": "eye"
|
||||||
|
case AskUserQuestion.nucleicToolName: "questionmark.bubble"
|
||||||
default: nil
|
default: nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,6 +124,11 @@ enum SandboxToolDisplay {
|
|||||||
// Takes no arguments: nothing to print beside the label.
|
// Takes no arguments: nothing to print beside the label.
|
||||||
case "mac_vm_clear_notifications":
|
case "mac_vm_clear_notifications":
|
||||||
return nil
|
return nil
|
||||||
|
case AskUserQuestion.nucleicToolName:
|
||||||
|
guard let questions = AskUserQuestion.questions(from: input),
|
||||||
|
let first = questions.first else { return nil }
|
||||||
|
let suffix = questions.count > 1 ? " +\(questions.count - 1) more" : ""
|
||||||
|
return singleLine(first.question) + suffix
|
||||||
default:
|
default:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -573,6 +573,7 @@ struct LockLineRow: View {
|
|||||||
/// SF Symbols for the common tools + file-change kinds, so a glance reads the action.
|
/// SF Symbols for the common tools + file-change kinds, so a glance reads the action.
|
||||||
enum ToolGlyph {
|
enum ToolGlyph {
|
||||||
static func icon(_ name: String) -> String {
|
static func icon(_ name: String) -> String {
|
||||||
|
if AskUserQuestion.matches(toolName: name) { return "questionmark.bubble" }
|
||||||
switch name {
|
switch name {
|
||||||
case "Bash", "Shell": return "terminal"
|
case "Bash", "Shell": return "terminal"
|
||||||
case "Read": return "doc.text"
|
case "Read": return "doc.text"
|
||||||
@@ -581,7 +582,6 @@ enum ToolGlyph {
|
|||||||
case "WebFetch", "WebSearch": return "globe"
|
case "WebFetch", "WebSearch": return "globe"
|
||||||
case "Task", "Agent", ToolGroup.orchestraSubagentToolName: return "person.2"
|
case "Task", "Agent", ToolGroup.orchestraSubagentToolName: return "person.2"
|
||||||
case "TodoWrite": return "checklist"
|
case "TodoWrite": return "checklist"
|
||||||
case "AskUserQuestion": return "questionmark.bubble"
|
|
||||||
case ExitPlanMode.toolName, PlanReview.toolName, PlanReview.qualifiedToolName:
|
case ExitPlanMode.toolName, PlanReview.toolName, PlanReview.qualifiedToolName:
|
||||||
return "list.bullet.clipboard"
|
return "list.bullet.clipboard"
|
||||||
case HostCommandSummary.hostExecToolName: return "desktopcomputer"
|
case HostCommandSummary.hostExecToolName: return "desktopcomputer"
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ struct ToolGroup: Equatable {
|
|||||||
var isOrchestration: Bool {
|
var isOrchestration: Bool {
|
||||||
name == "Task" || name == "Agent" || name == Self.orchestraSubagentToolName
|
name == "Task" || name == "Agent" || name == Self.orchestraSubagentToolName
|
||||||
}
|
}
|
||||||
var isAskUserQuestion: Bool { name == "AskUserQuestion" }
|
var isAskUserQuestion: Bool { AskUserQuestion.matches(toolName: name) }
|
||||||
var isExitPlanMode: Bool { PlanReview.isPlanTool(name) }
|
var isExitPlanMode: Bool { PlanReview.isPlanTool(name) }
|
||||||
|
|
||||||
/// The literal shell command a `Bash` call ran, if any (nil for every other tool). Used to
|
/// The literal shell command a `Bash` call ran, if any (nil for every other tool). Used to
|
||||||
|
|||||||
Reference in New Issue
Block a user