The Swift Package Index logo.Swift Package Index

Build Information

Successful build of AiVoiceKit, reference v1.1.1 (794208), with Swift 6.4 for macOS (SPM) on 27 Sep 2026 07:48:05 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Reference: v1.1.1
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/NerdSnipe-Inc/AiVoiceKit
 * tag               v1.1.1     -> FETCH_HEAD
HEAD is now at 794208f chore: fix compiler warnings across 6 files
Cloned https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Revision (git rev-parse @):
794208f05d9b32da7bec97c09bbed40b785a0da4
SUCCESS checkout https://github.com/NerdSnipe-Inc/AiVoiceKit.git at v1.1.1
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/NerdSnipe-Inc/AiVoiceKit.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 662]
[Planning deferred tasks]
[145 / 274] AiVoiceKit_AiVoiceKit
[151 / 274]
[162 / 280] whisper_cpp
[164 / 304]
[165 / 304]
[168 / 304]
[177 / 395]
[185 / 409]
[194 / 452]
[207 / 519]
[225 / 519]
[237 / 532]
[244 / 532]
[257 / 532]
[264 / 572]
[272 / 572]
[278 / 572]
[286 / 572]
[295 / 572]
[303 / 572]
[313 / 572]
[324 / 572]
[332 / 572]
[340 / 572]
[351 / 572]
[356 / 572]
[364 / 572] CoreAudioCaptureSupport
[371 / 572]
[381 / 593]
[391 / 593]
[398 / 594]
[410 / 605]
[414 / 605]
[419 / 605]
[422 / 605] EventSource
[424 / 605]
[432 / 605] EventSource
[449 / 605] PromiseKit
[470 / 605] SwiftWhisper
[476 / 605] SwiftWhisper-product
[483 / 605] OrderedCollections
[491 / 605] CoreAudioCaptureSupport
[497 / 605] whisper_cpp
[500 / 605] whisper_cpp
[500 / 605] PromiseKit
[508 / 605] SwiftWhisper
[516 / 605] Jinja
[520 / 605] EventSource-product
[527 / 605] DynamicNotchKit
[528 / 605] DynamicNotchKit
[532 / 605] DynamicNotchKit
[533 / 605] DynamicNotchKit
[535 / 605] DynamicNotchKit
[542 / 605] DynamicNotchKit-product
[550 / 605] OrderedCollections
[554 / 607] Crypto
[554 / 607] DynamicNotchKit
[556 / 607] Crypto
[558 / 607] Jinja
[568 / 618] Jinja
[570 / 630] Jinja
[575 / 630] Jinja
[583 / 630] Jinja-product
[586 / 630] HuggingFace
[587 / 630] HuggingFace
[589 / 630] HuggingFace
[596 / 631] Hub
[608 / 671]
[619 / 671]
[620 / 671]
[623 / 671]
[627 / 671]
[629 / 671]
[630 / 671]
[631 / 671]
[638 / 671] Hub
[645 / 672] Hub
[645 / 672] Tokenizers
[655 / 683] Tokenizers
[656 / 683] Tokenizers
[663 / 684] Hub
[665 / 684] Tokenizers
[667 / 684] FluidAudio
[677 / 710]
[678 / 710]
[679 / 710]
[681 / 710]
[682 / 710]
[693 / 710] FluidAudio
[694 / 710] FluidAudio
[700 / 711] FluidAudio
[700 / 711] AiVoiceKit
[703 / 725]
[709 / 725] AiVoiceKit
[711 / 725] AiVoiceKit
[712 / 725] AiVoiceKit
[714 / 725] AiVoiceKit
[720 / 725] FluidAudio
[720 / 725] AiVoiceKit
[723 / 725] FluidAudio
[725 / 725] AiVoiceKit-product
Build complete! (25.66 sec)
Fetching https://github.com/altic-dev/FluidAudio.git
[1/13453] Fetching fluidaudio
Fetched https://github.com/altic-dev/FluidAudio.git (54.08s)
Fetching https://github.com/altic-dev/DynamicNotchKit.git
[1/1072] Fetching dynamicnotchkit
Fetched https://github.com/altic-dev/DynamicNotchKit.git (3.20s)
Fetching https://github.com/huggingface/swift-transformers
Fetching https://github.com/mxcl/PromiseKit
Fetching https://github.com/exPHAT/SwiftWhisper.git
[1/591] Fetching swiftwhisper
[167/7618] Fetching swiftwhisper, swift-transformers
[308/24862] Fetching swiftwhisper, swift-transformers, promisekit
Fetched https://github.com/huggingface/swift-transformers (2.42s)
Fetched https://github.com/mxcl/PromiseKit (2.42s)
Fetched https://github.com/exPHAT/SwiftWhisper.git (2.42s)
Computing version for https://github.com/exPHAT/SwiftWhisper.git
Computed https://github.com/exPHAT/SwiftWhisper.git at 1.2.0 (5.18s)
Computing version for https://github.com/huggingface/swift-transformers
Computed https://github.com/huggingface/swift-transformers at 1.3.4 (0.58s)
Fetching https://github.com/huggingface/swift-jinja.git
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-crypto.git
Fetching https://github.com/ibireme/yyjson.git
Fetching https://github.com/huggingface/swift-huggingface.git
[1/2763] Fetching swift-huggingface
[29/21325] Fetching swift-huggingface, swift-crypto
[85/22701] Fetching swift-huggingface, swift-crypto, swift-jinja
[1187/27600] Fetching swift-huggingface, swift-crypto, swift-jinja, yyjson
[4229/55379] Fetching swift-huggingface, swift-crypto, swift-jinja, yyjson, swift-collections
Fetched https://github.com/huggingface/swift-jinja.git (1.13s)
[2880/54003] Fetching swift-huggingface, swift-crypto, yyjson, swift-collections
Fetched https://github.com/ibireme/yyjson.git (1.91s)
[18795/49104] Fetching swift-huggingface, swift-crypto, swift-collections
Fetched https://github.com/apple/swift-crypto.git (2.88s)
[29709/30542] Fetching swift-huggingface, swift-collections
Fetched https://github.com/apple/swift-collections.git (3.22s)
Fetched https://github.com/huggingface/swift-huggingface.git (3.22s)
Computing version for https://github.com/ibireme/yyjson.git
Computed https://github.com/ibireme/yyjson.git at 0.12.0 (3.91s)
Computing version for https://github.com/huggingface/swift-jinja.git
Computed https://github.com/huggingface/swift-jinja.git at 2.5.1 (0.53s)
Computing version for https://github.com/huggingface/swift-huggingface.git
Computed https://github.com/huggingface/swift-huggingface.git at 0.11.0 (0.57s)
Fetching https://github.com/mattt/EventSource.git
[1/303] Fetching eventsource
Fetched https://github.com/mattt/EventSource.git (0.94s)
Computing version for https://github.com/mattt/EventSource.git
Computed https://github.com/mattt/EventSource.git at 1.5.1 (1.55s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.1 (0.64s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 4.5.2 (2.23s)
Fetching https://github.com/apple/swift-asn1.git
[1/1986] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git (1.11s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.7.3 (1.79s)
Computing version for https://github.com/mxcl/PromiseKit
Computed https://github.com/mxcl/PromiseKit at 6.22.1 (0.65s)
Creating working copy for https://github.com/mxcl/PromiseKit
Working copy of https://github.com/mxcl/PromiseKit resolved at 6.22.1
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.1
Creating working copy for https://github.com/mattt/EventSource.git
Working copy of https://github.com/mattt/EventSource.git resolved at 1.5.1
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.7.3
Creating working copy for https://github.com/ibireme/yyjson.git
Working copy of https://github.com/ibireme/yyjson.git resolved at 0.12.0
Creating working copy for https://github.com/huggingface/swift-jinja.git
Working copy of https://github.com/huggingface/swift-jinja.git resolved at 2.5.1
Creating working copy for https://github.com/huggingface/swift-huggingface.git
Working copy of https://github.com/huggingface/swift-huggingface.git resolved at 0.11.0
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 4.5.2
Creating working copy for https://github.com/exPHAT/SwiftWhisper.git
Working copy of https://github.com/exPHAT/SwiftWhisper.git resolved at 1.2.0
Creating working copy for https://github.com/huggingface/swift-transformers
Working copy of https://github.com/huggingface/swift-transformers resolved at 1.3.4
Creating working copy for https://github.com/altic-dev/FluidAudio.git
Working copy of https://github.com/altic-dev/FluidAudio.git resolved at 3fd63887eef1dc25edea8263ce4b44aa854d898b
Creating working copy for https://github.com/altic-dev/DynamicNotchKit.git
Working copy of https://github.com/altic-dev/DynamicNotchKit.git resolved at 708f31da5319436c64059ee7ae566953407063d7
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/CommandModeService.swift:80:13: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 78 |     // MARK: - Dependencies
 79 |
 80 |     private nonisolated(unsafe) let terminalService = TerminalService()
    |             `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 81 |     /// Called when a complete command string is ready for the AI to act on.
 82 |     public var onCommandReceived: ((String) async -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Media/TranscriptionSoundPlayer.swift:9:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
  7 | /// Sounds are loaded from `Bundle.module` (package resources).
  8 | public final class TranscriptionSoundPlayer: @unchecked Sendable {
  9 |     public nonisolated(unsafe) static let shared = TranscriptionSoundPlayer()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
 10 |
 11 |     private let playbackQueue = DispatchQueue(label: "com.nerdsnipe.alric.voice.transcription-sounds", qos: .userInteractive)
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Persistence/ParakeetVocabularyStore.swift:11:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
  9 | /// Persists to Application Support so it survives app updates and can be user-edited.
 10 | public final class ParakeetVocabularyStore: @unchecked Sendable {
 11 |     public nonisolated(unsafe) static let shared = ParakeetVocabularyStore()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
 12 |
 13 |     public struct VocabularyConfig: Codable, Sendable {
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/CommandModeService.swift:80:13: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 78 |     // MARK: - Dependencies
 79 |
 80 |     private nonisolated(unsafe) let terminalService = TerminalService()
    |             `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TerminalService', consider removing it
 81 |     /// Called when a complete command string is ready for the AI to act on.
 82 |     public var onCommandReceived: ((String) async -> Void)?
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:66:16: warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 64 |               CFGetTypeID(ref) == AXUIElementGetTypeID()
 65 |         else { return nil }
 66 |         return unsafeBitCast(ref, to: AXUIElement.self)
    |                `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 67 |     }
 68 |
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:75:16: warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 73 |               CFGetTypeID(ref) == AXUIElementGetTypeID()
 74 |         else { return nil }
 75 |         return unsafeBitCast(ref, to: AXUIElement.self)
    |                `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXUIElement' can be replaced with 'unsafeDowncast'
 76 |     }
 77 |
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Command/TextSelectionService.swift:100:23: warning: 'unsafeBitCast' from 'AnyObject' to 'AXValue' can be replaced with 'unsafeDowncast'
 98 |         }
 99 |
100 |         let axValue = unsafeBitCast(rangeRef, to: AXValue.self)
    |                       `- warning: 'unsafeBitCast' from 'AnyObject' to 'AXValue' can be replaced with 'unsafeDowncast'
101 |         var cfRange = CFRange()
102 |         guard AXValueGetValue(axValue, .cfRange, &cfRange),
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Media/TranscriptionSoundPlayer.swift:9:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
  7 | /// Sounds are loaded from `Bundle.module` (package resources).
  8 | public final class TranscriptionSoundPlayer: @unchecked Sendable {
  9 |     public nonisolated(unsafe) static let shared = TranscriptionSoundPlayer()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'TranscriptionSoundPlayer', consider removing it
 10 |
 11 |     private let playbackQueue = DispatchQueue(label: "com.nerdsnipe.alric.voice.transcription-sounds", qos: .userInteractive)
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/ModelDownloader.swift:173:45: warning: 'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
168 |         states[model] = .downloading(progress: 0)
169 |         let downloader = HuggingFaceModelDownloader(owner: owner, repo: repo, requiredItems: items)
170 |         Task {
    |              |- note: 'self' implicitly strongly captured here
    |              `- note: add 'self' as a capture list item to silence
171 |             do {
172 |                 try await downloader.ensureModelsPresent(at: dest) { @Sendable progress, _ in
173 |                     Task { @MainActor [weak self] in
    |                                             |- warning: 'weak' ownership of capture 'self' differs from implicitly-captured strong reference in outer scope [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture\ImplicitStrongCapture]8;;\]
    |                                             `- note: explicitly assign the capture list item to silence
174 |                         self?.states[model] = .downloading(progress: progress)
175 |                     }
/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/macOS/Persistence/ParakeetVocabularyStore.swift:11:12: warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
  9 | /// Persists to Application Support so it survives app updates and can be user-edited.
 10 | public final class ParakeetVocabularyStore: @unchecked Sendable {
 11 |     public nonisolated(unsafe) static let shared = ParakeetVocabularyStore()
    |            `- warning: 'nonisolated(unsafe)' is unnecessary for a constant with 'Sendable' type 'ParakeetVocabularyStore', consider removing it
 12 |
 13 |     public struct VocabularyConfig: Codable, Sendable {
[#ImplicitStrongCapture]: <https://docs.swift.org/compiler/documentation/diagnostics/implicit-strong-capture>
Build complete.
{
  "dependencies" : [
    {
      "identity" : "fluidaudio",
      "requirement" : {
        "revision" : [
          "3fd63887eef1dc25edea8263ce4b44aa854d898b"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/altic-dev/FluidAudio.git"
    },
    {
      "identity" : "swiftwhisper",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.2.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/exPHAT/SwiftWhisper.git"
    },
    {
      "identity" : "dynamicnotchkit",
      "requirement" : {
        "revision" : [
          "708f31da5319436c64059ee7ae566953407063d7"
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/altic-dev/DynamicNotchKit.git"
    },
    {
      "identity" : "promisekit",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "6.0.0",
            "upper_bound" : "7.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/mxcl/PromiseKit"
    }
  ],
  "manifest_display_name" : "AiVoiceKit",
  "name" : "AiVoiceKit",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "15.0"
    },
    {
      "name" : "ios",
      "version" : "18.0"
    },
    {
      "name" : "visionos",
      "version" : "2.0"
    }
  ],
  "products" : [
    {
      "name" : "AiVoiceKit",
      "targets" : [
        "AiVoiceKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "CoreAudioCaptureSupport",
      "module_type" : "ClangTarget",
      "name" : "CoreAudioCaptureSupport",
      "path" : "Sources/CoreAudioCaptureSupport",
      "product_memberships" : [
        "AiVoiceKit"
      ],
      "sources" : [
        "CoreAudioCaptureSupport.c"
      ],
      "type" : "library"
    },
    {
      "c99name" : "AiVoiceKitTests",
      "module_type" : "SwiftTarget",
      "name" : "AiVoiceKitTests",
      "path" : "Tests/AiVoiceKitTests",
      "sources" : [
        "ASRModelTests.swift",
        "CommandModeRouterTests.swift",
        "HotkeyShortcutTests.swift",
        "LLMClientTests.swift",
        "ModelRepositoryTests.swift",
        "TranscriptionHistoryTests.swift",
        "VoiceSettingsTests.swift"
      ],
      "target_dependencies" : [
        "AiVoiceKit"
      ],
      "type" : "test"
    },
    {
      "c99name" : "AiVoiceKit",
      "module_type" : "SwiftTarget",
      "name" : "AiVoiceKit",
      "path" : "Sources/AiVoiceKit",
      "product_dependencies" : [
        "FluidAudio",
        "SwiftWhisper",
        "DynamicNotchKit",
        "PromiseKit"
      ],
      "product_memberships" : [
        "AiVoiceKit"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/Resources/voice_end.m4a",
          "rule" : {
            "process" : {
            }
          }
        },
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/AiVoiceKit/Resources/voice_start.m4a",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Public/ASRModel.swift",
        "Public/VoiceEngine.swift",
        "Public/VoiceSettings.swift",
        "Shared/BackupService.swift",
        "Shared/ChatHistoryStore.swift",
        "Shared/DebugLogger.swift",
        "Shared/DictationAudioHistoryStore.swift",
        "Shared/FileLogger.swift",
        "Shared/HotkeyShortcut.swift",
        "Shared/KeychainService.swift",
        "Shared/ModelRepository.swift",
        "Shared/TranscriptionHistoryStore.swift",
        "Shared/VoiceEngineLanguageCatalog.swift",
        "Shared/VoiceSettingsStore.swift",
        "macOS/AI/AIProvider.swift",
        "macOS/AI/AppleIntelligenceProvider.swift",
        "macOS/AI/DictationAIPostProcessingGate.swift",
        "macOS/AI/DictationPostProcessingService.swift",
        "macOS/AI/DictationPromptTestCoordinator.swift",
        "macOS/AI/FunctionCallingProvider.swift",
        "macOS/AI/LLMClient.swift",
        "macOS/AI/RewriteModeService.swift",
        "macOS/AI/ThinkingParsers.swift",
        "macOS/AudioDeviceService.swift",
        "macOS/AudioStartupGate.swift",
        "macOS/Command/ActiveAppMonitor.swift",
        "macOS/Command/CommandModeService.swift",
        "macOS/Command/TerminalService.swift",
        "macOS/Command/TextSelectionService.swift",
        "macOS/CommandModeRouter.swift",
        "macOS/DirectCoreAudioInput.swift",
        "macOS/Hotkeys/VoiceHotkeyManager.swift",
        "macOS/HuggingFaceModelDownloader.swift",
        "macOS/Media/MediaPlaybackService.swift",
        "macOS/Media/TranscriptionSoundPlayer.swift",
        "macOS/ModelDownloader.swift",
        "macOS/Overlay/NotchOverlayManager.swift",
        "macOS/Overlay/OverlayScreenResolver.swift",
        "macOS/Persistence/DictionaryTransferService.swift",
        "macOS/Persistence/MeetingTranscriptionService.swift",
        "macOS/Persistence/ParakeetVocabularyStore.swift",
        "macOS/Providers/AppleSpeechAnalyzerProvider.swift",
        "macOS/Providers/AppleSpeechProvider.swift",
        "macOS/Providers/CohereProvider.swift",
        "macOS/Providers/ExternalCoreMLModelRegistry.swift",
        "macOS/Providers/ExternalCoreMLTranscriptionProvider.swift",
        "macOS/Providers/FluidAudioProvider.swift",
        "macOS/Providers/MicrophonePermission.swift",
        "macOS/Providers/NemotronProvider.swift",
        "macOS/Providers/ParakeetRealtimeProvider.swift",
        "macOS/Providers/TranscriptionProvider.swift",
        "macOS/Providers/WhisperProvider.swift",
        "macOS/ThreadSafeAudioBuffer.swift",
        "macOS/Typing/ClipboardService.swift",
        "macOS/Typing/TypingService.swift",
        "macOS/VoiceEngineMacOS.swift"
      ],
      "target_dependencies" : [
        "CoreAudioCaptureSupport"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "6.0"
}
Done.