BroV: single Mac target, chat brain = local claude CLI (stream-json, resume)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
maksarsanjeev
2026-10-06 19:49:32 +03:00
parent 53b4f60da1
commit 0f77ec8704
25 changed files with 471 additions and 1007 deletions
@@ -71,6 +71,7 @@ enum AgentSource: Equatable {
// MARK: - Chat provider
enum ChatProvider: String, CaseIterable, Codable {
case claudeCode = "claudecode" // the user's own `claude` CLI (BroV)
case anthropic = "anthropic"
case google = "google"
case openai = "openai"
@@ -79,6 +80,7 @@ enum ChatProvider: String, CaseIterable, Codable {
var displayName: String {
switch self {
case .claudeCode: "Claude Code"
case .anthropic: "Anthropic"
case .google: "Google"
case .openai: "OpenAI"
@@ -89,6 +91,7 @@ enum ChatProvider: String, CaseIterable, Codable {
var accentHex: String {
switch self {
case .claudeCode: "#D97757"
case .anthropic: "#E07950"
case .google: "#4285F4"
case .openai: "#10A37F"
@@ -99,6 +102,7 @@ enum ChatProvider: String, CaseIterable, Codable {
var defaultModel: String {
switch self {
case .claudeCode: ""
case .anthropic: "claude-sonnet-4-6"
case .google: "gemini-2.0-flash"
case .openai: "gpt-4o"
@@ -109,6 +113,7 @@ enum ChatProvider: String, CaseIterable, Codable {
var keychainKey: String {
switch self {
case .claudeCode: ""
case .anthropic: "anthropic-api-key"
case .google: "google-api-key"
case .openai: "openai-api-key"
@@ -123,6 +128,7 @@ enum ChatProvider: String, CaseIterable, Codable {
var pillID: String {
switch self {
case .claudeCode: "ai_claudecode"
case .anthropic: "ai_anthropic"
case .google: "ai_google"
case .openai: "ai_openai"
@@ -133,6 +139,7 @@ enum ChatProvider: String, CaseIterable, Codable {
init?(pillID: String) {
switch pillID {
case "ai_claudecode": self = .claudeCode
case "ai_anthropic": self = .anthropic
case "ai_google": self = .google
case "ai_openai": self = .openai