more proactive vlm agent features

This commit is contained in:
joyzhuo
2026-03-29 00:58:22 -04:00
parent 15943b4759
commit 275a53ab40
7 changed files with 431 additions and 120 deletions

View File

@@ -35,30 +35,40 @@ struct ContentView: View {
private var mainContent: some View {
NavigationSplitView {
// Sidebar
List(AppTab.allCases, id: \.self, selection: $selectedTab) { tab in
Label(tab.rawValue, systemImage: tab.systemImage)
.badge(tab == .focusSession && session.isSessionActive ? "" : nil)
}
.navigationSplitViewColumnWidth(min: 160, ideal: 180)
.navigationTitle("LockInBro")
.toolbar {
ToolbarItem {
VStack(spacing: 0) {
List(AppTab.allCases, id: \.self, selection: $selectedTab) { tab in
Label(tab.rawValue, systemImage: tab.systemImage)
.badge(tab == .focusSession && session.isSessionActive ? "" : nil)
}
Divider()
HStack {
Button {
showingSettings = true
} label: {
Image(systemName: "gear")
Label("Settings", systemImage: "gear")
.font(.subheadline)
}
.help("Settings")
}
ToolbarItem {
.buttonStyle(.plain)
.foregroundStyle(.secondary)
Spacer()
Button {
auth.logout()
} label: {
Image(systemName: "rectangle.portrait.and.arrow.right")
}
.buttonStyle(.plain)
.foregroundStyle(.secondary)
.help("Sign out")
}
.padding(.horizontal, 12)
.padding(.vertical, 10)
}
.navigationSplitViewColumnWidth(min: 160, ideal: 180)
.navigationTitle("LockInBro")
.sheet(isPresented: $showingSettings) {
SettingsSheet(geminiApiKey: $geminiApiKey)
}