style: format macOS sources

This commit is contained in:
Peter Steinberger
2025-12-23 03:02:09 +01:00
parent 63f1857bda
commit 89ace66972
7 changed files with 31 additions and 21 deletions

View File

@@ -36,8 +36,8 @@ enum AnthropicAuthMode: Equatable {
enum AnthropicAuthResolver { enum AnthropicAuthResolver {
static func resolve( static func resolve(
environment: [String: String] = ProcessInfo.processInfo.environment, environment: [String: String] = ProcessInfo.processInfo.environment,
oauthStatus: ClawdisOAuthStore.AnthropicOAuthStatus = ClawdisOAuthStore.anthropicOAuthStatus() oauthStatus: ClawdisOAuthStore.AnthropicOAuthStatus = ClawdisOAuthStore
) -> AnthropicAuthMode .anthropicOAuthStatus()) -> AnthropicAuthMode
{ {
if oauthStatus.isConnected { return .oauthFile } if oauthStatus.isConnected { return .oauthFile }

View File

@@ -384,8 +384,8 @@ final class SparkleUpdaterController: NSObject, UpdaterProviding, SPUUpdaterDele
_ updater: SPUUpdater, _ updater: SPUUpdater,
userDidMakeChoice choice: SPUUserUpdateChoice, userDidMakeChoice choice: SPUUserUpdateChoice,
forUpdate updateItem: SUAppcastItem, forUpdate updateItem: SUAppcastItem,
state: SPUUserUpdateState state: SPUUserUpdateState)
) { {
switch choice { switch choice {
case .install, .skip: case .install, .skip:
self.updateStatus.isUpdateReady = false self.updateStatus.isUpdateReady = false

View File

@@ -131,7 +131,9 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
var cursor = insertIndex + 1 var cursor = insertIndex + 1
if rows.isEmpty { if rows.isEmpty {
menu.insertItem(self.makeMessageItem(text: "No active sessions", symbolName: "minus", width: width), at: cursor) menu.insertItem(
self.makeMessageItem(text: "No active sessions", symbolName: "minus", width: width),
at: cursor)
return return
} }
@@ -234,7 +236,10 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
!sessionId.isEmpty !sessionId.isEmpty
{ {
menu.addItem(NSMenuItem.separator()) menu.addItem(NSMenuItem.separator())
let openLog = NSMenuItem(title: "Open Session Log", action: #selector(self.openSessionLog(_:)), keyEquivalent: "") let openLog = NSMenuItem(
title: "Open Session Log",
action: #selector(self.openSessionLog(_:)),
keyEquivalent: "")
openLog.target = self openLog.target = self
openLog.representedObject = [ openLog.representedObject = [
"sessionId": sessionId, "sessionId": sessionId,
@@ -250,7 +255,10 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate {
reset.representedObject = row.key reset.representedObject = row.key
menu.addItem(reset) menu.addItem(reset)
let compact = NSMenuItem(title: "Compact Session Log", action: #selector(self.compactSession(_:)), keyEquivalent: "") let compact = NSMenuItem(
title: "Compact Session Log",
action: #selector(self.compactSession(_:)),
keyEquivalent: "")
compact.target = self compact.target = self
compact.representedObject = row.key compact.representedObject = row.key
menu.addItem(compact) menu.addItem(compact)

View File

@@ -30,14 +30,14 @@ struct SessionMenuLabelView: View {
var body: some View { var body: some View {
VStack(alignment: .leading, spacing: 8) { VStack(alignment: .leading, spacing: 8) {
ContextUsageBar( ContextUsageBar(
usedTokens: row.tokens.total, usedTokens: self.row.tokens.total,
contextTokens: row.tokens.contextTokens, contextTokens: self.row.tokens.contextTokens,
width: max(1, self.width - (self.paddingLeading + self.paddingTrailing)), width: max(1, self.width - (self.paddingLeading + self.paddingTrailing)),
height: self.barHeight) height: self.barHeight)
HStack(alignment: .firstTextBaseline, spacing: 8) { HStack(alignment: .firstTextBaseline, spacing: 8) {
Text(row.key) Text(self.row.key)
.font(.caption.weight(row.key == "main" ? .semibold : .regular)) .font(.caption.weight(self.row.key == "main" ? .semibold : .regular))
.foregroundStyle(self.primaryTextColor) .foregroundStyle(self.primaryTextColor)
.lineLimit(1) .lineLimit(1)
.truncationMode(.middle) .truncationMode(.middle)
@@ -45,7 +45,7 @@ struct SessionMenuLabelView: View {
Spacer(minLength: 8) Spacer(minLength: 8)
Text(row.tokens.contextSummaryShort) Text(self.row.tokens.contextSummaryShort)
.font(.caption.monospacedDigit()) .font(.caption.monospacedDigit())
.foregroundStyle(self.secondaryTextColor) .foregroundStyle(self.secondaryTextColor)
.lineLimit(1) .lineLimit(1)

View File

@@ -150,7 +150,8 @@ actor VoiceWakeRuntime {
guard let self else { return } guard let self else { return }
let transcript = result?.bestTranscription.formattedString let transcript = result?.bestTranscription.formattedString
let segments = result.flatMap { result in let segments = result.flatMap { result in
transcript.map { WakeWordSpeechSegments.from(transcription: result.bestTranscription, transcript: $0) } transcript
.map { WakeWordSpeechSegments.from(transcription: result.bestTranscription, transcript: $0) }
} ?? [] } ?? []
let isFinal = result?.isFinal ?? false let isFinal = result?.isFinal ?? false
Task { await self.handleRecognition( Task { await self.handleRecognition(
@@ -477,13 +478,13 @@ actor VoiceWakeRuntime {
triggers: [String]) -> String triggers: [String]) -> String
{ {
guard let triggerEndTime else { guard let triggerEndTime else {
return trimmedAfterTrigger(transcript, triggers: triggers) return self.trimmedAfterTrigger(transcript, triggers: triggers)
} }
let trimmed = WakeWordGate.commandText( let trimmed = WakeWordGate.commandText(
transcript: transcript, transcript: transcript,
segments: segments, segments: segments,
triggerEndTime: triggerEndTime) triggerEndTime: triggerEndTime)
return trimmed.isEmpty ? trimmedAfterTrigger(transcript, triggers: triggers) : trimmed return trimmed.isEmpty ? self.trimmedAfterTrigger(transcript, triggers: triggers) : trimmed
} }
#if DEBUG #if DEBUG

View File

@@ -94,7 +94,9 @@ final class VoiceWakeTester {
self.recognitionTask = recognizer.recognitionTask(with: request) { [weak self] result, error in self.recognitionTask = recognizer.recognitionTask(with: request) { [weak self] result, error in
guard let self, !self.isStopping else { return } guard let self, !self.isStopping else { return }
let text = result?.bestTranscription.formattedString ?? "" let text = result?.bestTranscription.formattedString ?? ""
let segments = result.map { WakeWordSpeechSegments.from(transcription: $0.bestTranscription, transcript: text) } ?? [] let segments = result.map { WakeWordSpeechSegments.from(
transcription: $0.bestTranscription,
transcript: text) } ?? []
let gateConfig = WakeWordGateConfig(triggers: triggers) let gateConfig = WakeWordGateConfig(triggers: triggers)
let match = WakeWordGate.match(transcript: text, segments: segments, config: gateConfig) let match = WakeWordGate.match(transcript: text, segments: segments, config: gateConfig)
let isFinal = result?.isFinal ?? false let isFinal = result?.isFinal ?? false

View File

@@ -314,12 +314,11 @@ final class WebChatSwiftUIWindowController {
effectView.autoresizingMask = [.width, .height] effectView.autoresizingMask = [.width, .height]
effectView.wantsLayer = true effectView.wantsLayer = true
effectView.layer?.cornerCurve = .continuous effectView.layer?.cornerCurve = .continuous
let cornerRadius: CGFloat let cornerRadius: CGFloat = switch presentation {
switch presentation {
case .panel: case .panel:
cornerRadius = 16 16
case .window: case .window:
cornerRadius = 12 12
} }
effectView.layer?.cornerRadius = cornerRadius effectView.layer?.cornerRadius = cornerRadius
effectView.layer?.masksToBounds = true effectView.layer?.masksToBounds = true
@@ -336,7 +335,7 @@ final class WebChatSwiftUIWindowController {
hosting.view.leadingAnchor.constraint(equalTo: effectView.leadingAnchor), hosting.view.leadingAnchor.constraint(equalTo: effectView.leadingAnchor),
hosting.view.trailingAnchor.constraint(equalTo: effectView.trailingAnchor), hosting.view.trailingAnchor.constraint(equalTo: effectView.trailingAnchor),
hosting.view.topAnchor.constraint(equalTo: effectView.topAnchor), hosting.view.topAnchor.constraint(equalTo: effectView.topAnchor),
hosting.view.bottomAnchor.constraint(equalTo: effectView.bottomAnchor) hosting.view.bottomAnchor.constraint(equalTo: effectView.bottomAnchor),
]) ])
return controller return controller