The Swift Package Index logo.Swift Package Index

Build Information

Failed to build yap, reference main (7c19dd), with Swift 6.4 for visionOS using Xcode 27.0 on 26 Sep 2026 09:47:05 UTC.

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun xcodebuild -IDEClonedSourcePackagesDirPathOverride=$PWD/.dependencies -skipMacroValidation -skipPackagePluginValidation -derivedDataPath $PWD/.derivedData build -scheme yap -destination generic/platform=xrOS

Build Log

106 |         // Set up ScreenCaptureKit for system audio capture
107 |         // Requires Screen Recording permission for the terminal app
108 |         let content: SCShareableContent
    |                      `- error: 'SCShareableContent' is unavailable in visionOS
109 |         do {
110 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:110:33: error: 'SCShareableContent' is unavailable in visionOS
108 |         let content: SCShareableContent
109 |         do {
110 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
    |                                 `- error: 'SCShareableContent' is unavailable in visionOS
111 |         } catch {
112 |             throw ListenError.screenRecordingPermissionDenied
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:118:22: error: 'SCContentFilter' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
116 |         }
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      |- error: 'SCContentFilter' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:118:22: error: 'init(display:excludingWindows:)' is unavailable in visionOS
116 |         }
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      `- error: 'init(display:excludingWindows:)' is unavailable in visionOS
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:160:1: note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
158 |  @discussion This method will create a SCContentFilter that captures the SCDisplay, excluding the passed in excluded SCWindow(s). The desktop background and dock will be included with this content filter.
159 | */
160 | - (instancetype)initWithDisplay:(SCDisplay *)display excludingWindows:(NSArray<SCWindow *>*)excluded API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos);
    | `- note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
161 |
162 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:119:28: error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
119 |         let streamConfig = SCStreamConfiguration()
    |                            |- error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
    |                            `- note: add 'if #available' version check
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:120:22: error: 'capturesAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
    |                      |- error: 'capturesAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:121:22: error: 'sampleRate' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
    |                      |- error: 'sampleRate' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
123 |         streamConfig.excludesCurrentProcessAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:122:22: error: 'channelCount' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
    |                      |- error: 'channelCount' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
123 |         streamConfig.excludesCurrentProcessAudio = true
124 |         // Minimal video settings since we only need audio
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:123:22: error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
123 |         streamConfig.excludesCurrentProcessAudio = true
    |                      |- error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:125:22: error: 'width' is unavailable in visionOS
123 |         streamConfig.excludesCurrentProcessAudio = true
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
    |                      `- error: 'width' is unavailable in visionOS
126 |         streamConfig.height = 2
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:230:37: note: 'width' has been explicitly marked unavailable here
228 |  @abstract SCStreamProperty for output width as measured in pixels. On macOS default is set to 1920. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
229 |  */
230 | @property(nonatomic, assign) size_t width API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'width' has been explicitly marked unavailable here
231 |
232 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:126:22: error: 'height' is unavailable in visionOS
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
126 |         streamConfig.height = 2
    |                      `- error: 'height' is unavailable in visionOS
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
128 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:235:37: note: 'height' has been explicitly marked unavailable here
233 |  @abstract SCStreamProperty for output height as measured in pixels. on macOS default is set to 1080. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
234 |  */
235 | @property(nonatomic, assign) size_t height API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'height' has been explicitly marked unavailable here
236 |
237 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:127:22: error: 'minimumFrameInterval' is unavailable in visionOS
125 |         streamConfig.width = 2
126 |         streamConfig.height = 2
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
    |                      `- error: 'minimumFrameInterval' is unavailable in visionOS
128 |
129 |         let streamDelegate = AudioStreamDelegate(
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:240:37: note: 'minimumFrameInterval' has been explicitly marked unavailable here
238 |  @abstract SCStreamProperty that specifies the desired minimum time in seconds between frame updates, allowing you to throttle the rate at which updates are received. The default value is 1/60, meaning that updates are coming in at or up to 60fps. Set this to kCMTimeZero to capture at display's native refresh rate.
239 |  */
240 | @property(nonatomic, assign) CMTime minimumFrameInterval API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(visionos, ios, tvos);
    |                                     `- note: 'minimumFrameInterval' has been explicitly marked unavailable here
241 |
242 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:134:22: error: 'SCStream' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
132 |         )
133 |
134 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
    |                      |- error: 'SCStream' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
135 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
136 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:135:59: error: 'audio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
133 |
134 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
135 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
    |                                                           |- error: 'audio' is only available in visionOS 27.0 or newer
    |                                                           `- note: add 'if #available' version check
136 |         do {
137 |             try await stream.startCapture()
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:190:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
188 |         let sentenceMaxLength = maxLength
189 |         if format == .txt {
190 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
191 |                 let text = String(result.text.characters)
192 |                 if !text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:204:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
202 |             let includeWords = wordTimestamps
203 |             var segmentIndex = 0
204 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
205 |                 for chunk in result.text.splitAtTimeGaps(threshold: 1.5) {
206 |                     let allWords = includeWords ? chunk.wordTimestamps() : nil
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:50:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:54:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
 52 |         }
 53 |
 54 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 55 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 56 |             throw Transcribe.Error.unsupportedLocale
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:59:29: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 57 |         }
 58 |
 59 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 60 |             await AssetInventory.release(reservedLocale: locale)
 61 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:60:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 58 |
 59 |         for locale in await AssetInventory.reservedLocales {
 60 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 61 |         }
 62 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:62:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 60 |             await AssetInventory.release(reservedLocale: locale)
 61 |         }
 62 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:64:39: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 62 |         try await AssetInventory.reserve(locale: locale)
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
    |                                       |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                       `- note: add 'if #available' version check
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 66 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:65:35: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
    |                                   |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                   `- note: add 'if #available' version check
 66 |
 67 |         let micTranscriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:67:30: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 66 |
 67 |         let micTranscriber = SpeechTranscriber(
    |                              |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                              `- note: add 'if #available' version check
 68 |             locale: locale,
 69 |             transcriptionOptions: transcriptionOptions,
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:73:30: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 71 |             attributeOptions: attributeOptions
 72 |         )
 73 |         let sysTranscriber = SpeechTranscriber(
    |                              |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                              `- note: add 'if #available' version check
 74 |             locale: locale,
 75 |             transcriptionOptions: transcriptionOptions,
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:79:27: error: 'SpeechModule' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 77 |             attributeOptions: attributeOptions
 78 |         )
 79 |         let modules: [any SpeechModule] = [micTranscriber, sysTranscriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 80 |
 81 |         let installedLocales = await SpeechTranscriber.installedLocales
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:81:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 79 |         let modules: [any SpeechModule] = [micTranscriber, sysTranscriber]
 80 |
 81 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 82 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 83 |             let piped = isatty(STDOUT_FILENO) == 0
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:90:40: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 88 |                 Noora()
 89 |             }
 90 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 91 |                 try await noora.progressBarStep(
 92 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:113:27: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
111 |
112 |         // Set up microphone pipeline
113 |         let micAnalyzer = SpeechAnalyzer(modules: [micTranscriber])
    |                           |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
115 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:114:83: error: 'AnalyzerInput' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
112 |         // Set up microphone pipeline
113 |         let micAnalyzer = SpeechAnalyzer(modules: [micTranscriber])
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                                   |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                                   `- note: add 'if #available' version check
115 |
116 |         guard let micFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:116:37: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
115 |
116 |         guard let micFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                     |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                     `- note: add 'if #available' version check
117 |             compatibleWith: [micTranscriber]
118 |         ) else {
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:130:27: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
128 |
129 |         // Set up system audio pipeline
130 |         let sysAnalyzer = SpeechAnalyzer(modules: [sysTranscriber])
    |                           |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
132 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:131:83: error: 'AnalyzerInput' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
129 |         // Set up system audio pipeline
130 |         let sysAnalyzer = SpeechAnalyzer(modules: [sysTranscriber])
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                                   |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                                   `- note: add 'if #available' version check
132 |
133 |         guard let sysFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:133:37: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
132 |
133 |         guard let sysFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                     |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                     `- note: add 'if #available' version check
134 |             compatibleWith: [sysTranscriber]
135 |         ) else {
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:139:22: error: 'SCShareableContent' is unavailable in visionOS
137 |         }
138 |
139 |         let content: SCShareableContent
    |                      `- error: 'SCShareableContent' is unavailable in visionOS
140 |         do {
141 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:141:33: error: 'SCShareableContent' is unavailable in visionOS
139 |         let content: SCShareableContent
140 |         do {
141 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
    |                                 `- error: 'SCShareableContent' is unavailable in visionOS
142 |         } catch {
143 |             throw ListenError.screenRecordingPermissionDenied
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:149:22: error: 'SCContentFilter' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
147 |         }
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      |- error: 'SCContentFilter' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:149:22: error: 'init(display:excludingWindows:)' is unavailable in visionOS
147 |         }
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      `- error: 'init(display:excludingWindows:)' is unavailable in visionOS
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:160:1: note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
158 |  @discussion This method will create a SCContentFilter that captures the SCDisplay, excluding the passed in excluded SCWindow(s). The desktop background and dock will be included with this content filter.
159 | */
160 | - (instancetype)initWithDisplay:(SCDisplay *)display excludingWindows:(NSArray<SCWindow *>*)excluded API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos);
    | `- note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
161 |
162 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:150:28: error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
150 |         let streamConfig = SCStreamConfiguration()
    |                            |- error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
    |                            `- note: add 'if #available' version check
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:151:22: error: 'capturesAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
    |                      |- error: 'capturesAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:152:22: error: 'sampleRate' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
    |                      |- error: 'sampleRate' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:153:22: error: 'channelCount' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
    |                      |- error: 'channelCount' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:154:22: error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
    |                      |- error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:155:22: error: 'width' is unavailable in visionOS
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
    |                      `- error: 'width' is unavailable in visionOS
156 |         streamConfig.height = 2
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:230:37: note: 'width' has been explicitly marked unavailable here
228 |  @abstract SCStreamProperty for output width as measured in pixels. On macOS default is set to 1920. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
229 |  */
230 | @property(nonatomic, assign) size_t width API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'width' has been explicitly marked unavailable here
231 |
232 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:156:22: error: 'height' is unavailable in visionOS
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
    |                      `- error: 'height' is unavailable in visionOS
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
158 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:235:37: note: 'height' has been explicitly marked unavailable here
233 |  @abstract SCStreamProperty for output height as measured in pixels. on macOS default is set to 1080. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
234 |  */
235 | @property(nonatomic, assign) size_t height API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'height' has been explicitly marked unavailable here
236 |
237 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:157:22: error: 'minimumFrameInterval' is unavailable in visionOS
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
    |                      `- error: 'minimumFrameInterval' is unavailable in visionOS
158 |
159 |         let streamDelegate = AudioStreamDelegate(
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:240:37: note: 'minimumFrameInterval' has been explicitly marked unavailable here
238 |  @abstract SCStreamProperty that specifies the desired minimum time in seconds between frame updates, allowing you to throttle the rate at which updates are received. The default value is 1/60, meaning that updates are coming in at or up to 60fps. Set this to kCMTimeZero to capture at display's native refresh rate.
239 |  */
240 | @property(nonatomic, assign) CMTime minimumFrameInterval API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(visionos, ios, tvos);
    |                                     `- note: 'minimumFrameInterval' has been explicitly marked unavailable here
241 |
242 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:164:22: error: 'SCStream' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
162 |         )
163 |
164 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
    |                      |- error: 'SCStream' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
165 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
166 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:165:59: error: 'audio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
163 |
164 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
165 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
    |                                                           |- error: 'audio' is only available in visionOS 27.0 or newer
    |                                                           `- note: add 'if #available' version check
166 |         do {
167 |             try await stream.startCapture()
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:56:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 54 |         }
 55 |
 56 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 57 |             noora.error(.alert("SpeechTranscriber is not available on this device"))
 58 |             throw Error.speechTranscriberNotAvailable
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:61:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 59 |         }
 60 |
 61 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 62 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 63 |             noora.error(.alert("Locale \"\(locale.identifier)\" is not supported. Supported locales:\n\(supportedLocales.map(\.identifier))"))
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:67:29: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 65 |         }
 66 |
 67 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 68 |             await AssetInventory.release(reservedLocale: locale)
 69 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:68:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 66 |
 67 |         for locale in await AssetInventory.reservedLocales {
 68 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 69 |         }
 70 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:70:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 68 |             await AssetInventory.release(reservedLocale: locale)
 69 |         }
 70 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 71 |
 72 |         let transcriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:72:27: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 70 |         try await AssetInventory.reserve(locale: locale)
 71 |
 72 |         let transcriber = SpeechTranscriber(
    |                           |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 73 |             locale: locale,
 74 |             transcriptionOptions: censor ? [.etiquetteReplacements] : [],
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:78:27: error: 'SpeechModule' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 76 |             attributeOptions: outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 77 |         )
 78 |         let modules: [any SpeechModule] = [transcriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:79:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 77 |         )
 78 |         let modules: [any SpeechModule] = [transcriber]
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 81 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:81:40: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 81 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 82 |                 try await noora.progressBarStep(
 83 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:103:24: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
101 |         }
102 |
103 |         let analyzer = SpeechAnalyzer(modules: modules)
    |                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                        `- note: add 'if #available' version check
104 |
105 |         let preparedAudioFile = try await TranscriptionAudioFile.prepare(inputFile)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:109:28: error: 'start(inputAudioFile:finishAfterFile:)' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
107 |         let audioFile = preparedAudioFile.audioFile
108 |         let audioFileDuration: TimeInterval = Double(audioFile.length) / audioFile.processingFormat.sampleRate
109 |         try await analyzer.start(inputAudioFile: audioFile, finishAfterFile: true)
    |                            |- error: 'start(inputAudioFile:finishAfterFile:)' is only available in visionOS 26 or newer
    |                            `- note: add 'if #available' version check
110 |
111 |         var transcript: AttributedString = ""
[#IsolatedConformances]: <https://docs.swift.org/compiler/documentation/diagnostics/isolated-conformances>
Failed frontend command:
SwiftCompile normal arm64 (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Extensions/AttributedString+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/MCP.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/OutputFormat.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionAudioFile.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Yap.swift -target arm64-apple-xros1.0 -disable-cross-import-overlay-search -swift-module-cross-import ScreenCaptureKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Modules/ScreenCaptureKit.swiftcrossimport/SwiftUI.swiftoverlay -swift-module-cross-import ScreenCaptureKit /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Modules/ScreenCaptureKit.swiftcrossimport/SwiftUI.swiftoverlay -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib/swift/host/plugins/libPreviewsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/bin/swift-plugin-server\#PreviewsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib/swift/host/plugins/libSwiftUIMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/bin/swift-plugin-server\#SwiftUIMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-xros -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-xros/PackageFrameworks -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-xros -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -fmodule-map-file\=/Users/admin/builder/spi-builder-workspace/.dependencies/checkouts/swift-system/Sources/CSystem/include/module.modulemap -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/xros27.0-24M361-e829b21a6f8c9b70876ba0858053c044735bd543db762f57723cac368afd1ce4.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.dependencies/checkouts/swift-system/Sources/CSystem/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-xros/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name yap -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-xros27.0 -target-sdk-version 27.0 -target-sdk-name xros27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap.swiftsourceinfo -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/yap.build/Debug-xros/yap-p.build/Objects-normal/arm64/yap.abi.json
SwiftCompile normal arm64 Compiling\ Dictate.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift (in target 'yap-product' from project 'yap')
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:204:70: error: 'AnalyzerInput' is only available in visionOS 26 or newer
199 | // MARK: - MicrophoneCapture
200 |
201 | final class MicrophoneCapture: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
202 |     // MARK: Lifecycle
203 |
204 |     init(targetFormat: AVAudioFormat, inputContinuation: AsyncStream<AnalyzerInput>.Continuation) throws {
    |     |                                                                `- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |     `- note: add '@available' attribute to enclosing initializer
205 |         self.targetFormat = targetFormat
206 |         self.inputContinuation = inputContinuation
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:230:40: error: 'AnalyzerInput' is only available in visionOS 26 or newer
199 | // MARK: - MicrophoneCapture
200 |
201 | final class MicrophoneCapture: @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
202 |     // MARK: Lifecycle
203 |
    :
228 |     let audioEngine: AVAudioEngine
229 |     let converter: AVAudioConverter
230 |     let inputContinuation: AsyncStream<AnalyzerInput>.Continuation
    |                                        `- error: 'AnalyzerInput' is only available in visionOS 26 or newer
231 |     let targetFormat: AVAudioFormat
232 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:39:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
 41 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:43:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
 41 |         }
 42 |
 43 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 44 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 45 |             throw Transcribe.Error.unsupportedLocale
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:48:29: error: 'AssetInventory' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 46 |         }
 47 |
 48 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 49 |             await AssetInventory.release(reservedLocale: locale)
 50 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:49:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 47 |
 48 |         for locale in await AssetInventory.reservedLocales {
 49 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 50 |         }
 51 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:51:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 49 |             await AssetInventory.release(reservedLocale: locale)
 50 |         }
 51 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 52 |
 53 |         let transcriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:53:27: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 51 |         try await AssetInventory.reserve(locale: locale)
 52 |
 53 |         let transcriber = SpeechTranscriber(
    |                           |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 54 |             locale: locale,
 55 |             transcriptionOptions: censor ? [.etiquetteReplacements] : [],
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:59:27: error: 'SpeechModule' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 57 |             attributeOptions: outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 58 |         )
 59 |         let modules: [any SpeechModule] = [transcriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 60 |
 61 |         let installedLocales = await SpeechTranscriber.installedLocales
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Dictate.swift
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:61:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 59 |         let modules: [any SpeechModule] = [transcriber]
 60 |
 61 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 62 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 63 |             let piped = isatty(STDOUT_FILENO) == 0
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:70:40: error: 'AssetInventory' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 68 |                 Noora()
 69 |             }
 70 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 71 |                 try await noora.progressBarStep(
 72 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:92:24: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 90 |         }
 91 |
 92 |         let analyzer = SpeechAnalyzer(modules: modules)
    |                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                        `- note: add 'if #available' version check
 93 |
 94 |         // Set up streaming input
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:95:77: error: 'AnalyzerInput' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 93 |
 94 |         // Set up streaming input
 95 |         let (inputSequence, inputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                             |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                             `- note: add 'if #available' version check
 96 |
 97 |         // Get target audio format from the analyzer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:98:40: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
  8 | // MARK: - Dictate
  9 |
 10 | struct Dictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 11 |     static let configuration = CommandConfiguration(
 12 |         abstract: "Transcribe live microphone input in real time."
    :
 36 |     ) var wordTimestamps: Bool = false
 37 |
 38 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 39 |         guard SpeechTranscriber.isAvailable else {
 40 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 96 |
 97 |         // Get target audio format from the analyzer
 98 |         guard let targetFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 99 |             compatibleWith: modules
100 |         ) else {
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:157:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
155 |         let sentenceMaxLength = maxLength
156 |         if format == .txt {
157 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
158 |                 let text = String(result.text.characters)
159 |                 if !text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Dictate.swift:171:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
169 |             let includeWords = wordTimestamps
170 |             var segmentIndex = 0
171 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
172 |                 for chunk in result.text.splitAtTimeGaps(threshold: 1.5) {
173 |                     let allWords = includeWords ? chunk.wordTimestamps() : nil
SwiftCompile normal arm64 Compiling\ Transcribe.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift (in target 'yap-product' from project 'yap')
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:56:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 54 |         }
 55 |
 56 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 57 |             noora.error(.alert("SpeechTranscriber is not available on this device"))
 58 |             throw Error.speechTranscriberNotAvailable
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:61:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 59 |         }
 60 |
 61 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 62 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 63 |             noora.error(.alert("Locale \"\(locale.identifier)\" is not supported. Supported locales:\n\(supportedLocales.map(\.identifier))"))
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:67:29: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 65 |         }
 66 |
 67 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 68 |             await AssetInventory.release(reservedLocale: locale)
 69 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:68:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 66 |
 67 |         for locale in await AssetInventory.reservedLocales {
 68 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 69 |         }
 70 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:70:19: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 68 |             await AssetInventory.release(reservedLocale: locale)
 69 |         }
 70 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 71 |
 72 |         let transcriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:72:27: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 70 |         try await AssetInventory.reserve(locale: locale)
 71 |
 72 |         let transcriber = SpeechTranscriber(
    |                           |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 73 |             locale: locale,
 74 |             transcriptionOptions: censor ? [.etiquetteReplacements] : [],
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:78:27: error: 'SpeechModule' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 76 |             attributeOptions: outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 77 |         )
 78 |         let modules: [any SpeechModule] = [transcriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:79:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 77 |         )
 78 |         let modules: [any SpeechModule] = [transcriber]
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 81 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Transcribe.swift
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:81:40: error: 'AssetInventory' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
 79 |         let installedLocales = await SpeechTranscriber.installedLocales
 80 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 81 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 82 |                 try await noora.progressBarStep(
 83 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/Transcribe.swift:103:24: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
  6 | // MARK: - Transcribe
  7 |
  8 | @MainActor struct Transcribe: AsyncParsableCommand {
    |                   `- note: add '@available' attribute to enclosing struct
  9 |     @Option(
 10 |         name: .shortAndLong,
    :
 41 |     ) var wordTimestamps: Bool = false
 42 |
 43 |     mutating func run() async throws {
    |                   `- note: add '@available' attribute to enclosing instance method
 44 |         guard FileManager.default.fileExists(atPath: inputFile.path) else {
 45 |             throw ValidationError("File not found: \(inputFile.path)")
    :
101 |         }
102 |
103 |         let analyzer = SpeechAnalyzer(modules: modules)
    |                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                        `- note: add 'if #available' version check
104 |
105 |         let preparedAudioFile = try await TranscriptionAudioFile.prepare(inputFile)
SwiftCompile normal arm64 Compiling\ ListenAndDictate.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift (in target 'yap-product' from project 'yap')
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:50:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:54:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
 52 |         }
 53 |
 54 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 55 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 56 |             throw Transcribe.Error.unsupportedLocale
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:59:29: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 57 |         }
 58 |
 59 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 60 |             await AssetInventory.release(reservedLocale: locale)
 61 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:60:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 58 |
 59 |         for locale in await AssetInventory.reservedLocales {
 60 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 61 |         }
 62 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:62:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 60 |             await AssetInventory.release(reservedLocale: locale)
 61 |         }
 62 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:64:39: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 62 |         try await AssetInventory.reserve(locale: locale)
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
    |                                       |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                       `- note: add 'if #available' version check
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 66 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:65:35: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 63 |
 64 |         let transcriptionOptions: Set<SpeechTranscriber.TranscriptionOption> = censor ? [.etiquetteReplacements] : []
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
    |                                   |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                   `- note: add 'if #available' version check
 66 |
 67 |         let micTranscriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:67:30: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 65 |         let attributeOptions: Set<SpeechTranscriber.ResultAttributeOption> = outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 66 |
 67 |         let micTranscriber = SpeechTranscriber(
    |                              |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                              `- note: add 'if #available' version check
 68 |             locale: locale,
 69 |             transcriptionOptions: transcriptionOptions,
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:73:30: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 71 |             attributeOptions: attributeOptions
 72 |         )
 73 |         let sysTranscriber = SpeechTranscriber(
    |                              |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                              `- note: add 'if #available' version check
 74 |             locale: locale,
 75 |             transcriptionOptions: transcriptionOptions,
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:79:27: error: 'SpeechModule' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 77 |             attributeOptions: attributeOptions
 78 |         )
 79 |         let modules: [any SpeechModule] = [micTranscriber, sysTranscriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 80 |
 81 |         let installedLocales = await SpeechTranscriber.installedLocales
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:81:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 79 |         let modules: [any SpeechModule] = [micTranscriber, sysTranscriber]
 80 |
 81 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 82 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 83 |             let piped = isatty(STDOUT_FILENO) == 0
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:90:40: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 88 |                 Noora()
 89 |             }
 90 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 91 |                 try await noora.progressBarStep(
 92 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:113:27: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
111 |
112 |         // Set up microphone pipeline
113 |         let micAnalyzer = SpeechAnalyzer(modules: [micTranscriber])
    |                           |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
115 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:114:83: error: 'AnalyzerInput' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
112 |         // Set up microphone pipeline
113 |         let micAnalyzer = SpeechAnalyzer(modules: [micTranscriber])
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                                   |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                                   `- note: add 'if #available' version check
115 |
116 |         guard let micFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:116:37: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
114 |         let (micInputSequence, micInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
115 |
116 |         guard let micFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                     |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                     `- note: add 'if #available' version check
117 |             compatibleWith: [micTranscriber]
118 |         ) else {
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:130:27: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
128 |
129 |         // Set up system audio pipeline
130 |         let sysAnalyzer = SpeechAnalyzer(modules: [sysTranscriber])
    |                           |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
132 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:131:83: error: 'AnalyzerInput' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
129 |         // Set up system audio pipeline
130 |         let sysAnalyzer = SpeechAnalyzer(modules: [sysTranscriber])
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                                   |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                                   `- note: add 'if #available' version check
132 |
133 |         guard let sysFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:133:37: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
131 |         let (sysInputSequence, sysInputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
132 |
133 |         guard let sysFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                     |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                     `- note: add 'if #available' version check
134 |             compatibleWith: [sysTranscriber]
135 |         ) else {
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:139:22: error: 'SCShareableContent' is unavailable in visionOS
137 |         }
138 |
139 |         let content: SCShareableContent
    |                      `- error: 'SCShareableContent' is unavailable in visionOS
140 |         do {
141 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:141:33: error: 'SCShareableContent' is unavailable in visionOS
139 |         let content: SCShareableContent
140 |         do {
141 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
    |                                 `- error: 'SCShareableContent' is unavailable in visionOS
142 |         } catch {
143 |             throw ListenError.screenRecordingPermissionDenied
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:149:22: error: 'SCContentFilter' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
147 |         }
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      |- error: 'SCContentFilter' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:149:22: error: 'init(display:excludingWindows:)' is unavailable in visionOS
147 |         }
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      `- error: 'init(display:excludingWindows:)' is unavailable in visionOS
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:160:1: note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
158 |  @discussion This method will create a SCContentFilter that captures the SCDisplay, excluding the passed in excluded SCWindow(s). The desktop background and dock will be included with this content filter.
159 | */
160 | - (instancetype)initWithDisplay:(SCDisplay *)display excludingWindows:(NSArray<SCWindow *>*)excluded API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos);
    | `- note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
161 |
162 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:150:28: error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
148 |
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
150 |         let streamConfig = SCStreamConfiguration()
    |                            |- error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
    |                            `- note: add 'if #available' version check
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:151:22: error: 'capturesAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
149 |         let filter = SCContentFilter(display: display, excludingWindows: [])
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
    |                      |- error: 'capturesAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:152:22: error: 'sampleRate' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
150 |         let streamConfig = SCStreamConfiguration()
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
    |                      |- error: 'sampleRate' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:153:22: error: 'channelCount' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
151 |         streamConfig.capturesAudio = true
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
    |                      |- error: 'channelCount' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:154:22: error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
152 |         streamConfig.sampleRate = Int(sysFormat.sampleRate)
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
    |                      |- error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:155:22: error: 'width' is unavailable in visionOS
153 |         streamConfig.channelCount = Int(sysFormat.channelCount)
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
    |                      `- error: 'width' is unavailable in visionOS
156 |         streamConfig.height = 2
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:230:37: note: 'width' has been explicitly marked unavailable here
228 |  @abstract SCStreamProperty for output width as measured in pixels. On macOS default is set to 1920. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
229 |  */
230 | @property(nonatomic, assign) size_t width API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'width' has been explicitly marked unavailable here
231 |
232 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:156:22: error: 'height' is unavailable in visionOS
154 |         streamConfig.excludesCurrentProcessAudio = true
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
    |                      `- error: 'height' is unavailable in visionOS
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
158 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:235:37: note: 'height' has been explicitly marked unavailable here
233 |  @abstract SCStreamProperty for output height as measured in pixels. on macOS default is set to 1080. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
234 |  */
235 | @property(nonatomic, assign) size_t height API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'height' has been explicitly marked unavailable here
236 |
237 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:157:22: error: 'minimumFrameInterval' is unavailable in visionOS
155 |         streamConfig.width = 2
156 |         streamConfig.height = 2
157 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
    |                      `- error: 'minimumFrameInterval' is unavailable in visionOS
158 |
159 |         let streamDelegate = AudioStreamDelegate(
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:240:37: note: 'minimumFrameInterval' has been explicitly marked unavailable here
238 |  @abstract SCStreamProperty that specifies the desired minimum time in seconds between frame updates, allowing you to throttle the rate at which updates are received. The default value is 1/60, meaning that updates are coming in at or up to 60fps. Set this to kCMTimeZero to capture at display's native refresh rate.
239 |  */
240 | @property(nonatomic, assign) CMTime minimumFrameInterval API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(visionos, ios, tvos);
    |                                     `- note: 'minimumFrameInterval' has been explicitly marked unavailable here
241 |
242 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:164:22: error: 'SCStream' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
162 |         )
163 |
164 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
    |                      |- error: 'SCStream' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
165 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
166 |         do {
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ListenAndDictate.swift
/Users/admin/builder/spi-builder-workspace/Sources/yap/ListenAndDictate.swift:165:59: error: 'audio' is only available in visionOS 27.0 or newer
 10 | // MARK: - ListenAndDictate
 11 |
 12 | struct ListenAndDictate: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         commandName: "listen-and-dictate",
    :
 47 |     ) var wordTimestamps: Bool = false
 48 |
 49 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 50 |         guard SpeechTranscriber.isAvailable else {
 51 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
163 |
164 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
165 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
    |                                                           |- error: 'audio' is only available in visionOS 27.0 or newer
    |                                                           `- note: add 'if #available' version check
166 |         do {
167 |             try await stream.startCapture()
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
SwiftCompile normal arm64 Compiling\ Listen.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift (in target 'yap-product' from project 'yap')
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:237:70: error: 'AnalyzerInput' is only available in visionOS 26 or newer
232 | // MARK: - AudioStreamDelegate
233 |
234 | final class AudioStreamDelegate: NSObject, SCStreamOutput, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
235 |     // MARK: Lifecycle
236 |
237 |     init(targetFormat: AVAudioFormat, inputContinuation: AsyncStream<AnalyzerInput>.Continuation) {
    |     |                                                                `- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |     `- note: add '@available' attribute to enclosing initializer
238 |         self.targetFormat = targetFormat
239 |         self.inputContinuation = inputContinuation
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:245:40: error: 'AnalyzerInput' is only available in visionOS 26 or newer
232 | // MARK: - AudioStreamDelegate
233 |
234 | final class AudioStreamDelegate: NSObject, SCStreamOutput, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
235 |     // MARK: Lifecycle
236 |
    :
243 |
244 |     let targetFormat: AVAudioFormat
245 |     let inputContinuation: AsyncStream<AnalyzerInput>.Continuation
    |                                        `- error: 'AnalyzerInput' is only available in visionOS 26 or newer
246 |     var converter: AVAudioConverter?
247 |
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:248:20: error: 'SCStream' is only available in visionOS 27.0 or newer
232 | // MARK: - AudioStreamDelegate
233 |
234 | final class AudioStreamDelegate: NSObject, SCStreamOutput, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
235 |     // MARK: Lifecycle
236 |
    :
246 |     var converter: AVAudioConverter?
247 |
248 |     func stream(_: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of type: SCStreamOutputType) {
    |          |         `- error: 'SCStream' is only available in visionOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         guard type == .audio else { return }
250 |         guard sampleBuffer.isValid, sampleBuffer.numSamples > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:248:91: error: 'SCStreamOutputType' is only available in visionOS 27.0 or newer
232 | // MARK: - AudioStreamDelegate
233 |
234 | final class AudioStreamDelegate: NSObject, SCStreamOutput, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
235 |     // MARK: Lifecycle
236 |
    :
246 |     var converter: AVAudioConverter?
247 |
248 |     func stream(_: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of type: SCStreamOutputType) {
    |          |                                                                                `- error: 'SCStreamOutputType' is only available in visionOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
249 |         guard type == .audio else { return }
250 |         guard sampleBuffer.isValid, sampleBuffer.numSamples > 0 else { return }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:41:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
    |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |               `- note: add 'if #available' version check
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
 43 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:45:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
 43 |         }
 44 |
 45 |         let supportedLocales = await SpeechTranscriber.supportedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 46 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) else {
 47 |             throw Transcribe.Error.unsupportedLocale
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:50:29: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 48 |         }
 49 |
 50 |         for locale in await AssetInventory.reservedLocales {
    |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                             `- note: add 'if #available' version check
 51 |             await AssetInventory.release(reservedLocale: locale)
 52 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:51:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 49 |
 50 |         for locale in await AssetInventory.reservedLocales {
 51 |             await AssetInventory.release(reservedLocale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 52 |         }
 53 |         try await AssetInventory.reserve(locale: locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:53:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 51 |             await AssetInventory.release(reservedLocale: locale)
 52 |         }
 53 |         try await AssetInventory.reserve(locale: locale)
    |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                   `- note: add 'if #available' version check
 54 |
 55 |         let transcriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:55:27: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 53 |         try await AssetInventory.reserve(locale: locale)
 54 |
 55 |         let transcriber = SpeechTranscriber(
    |                           |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 56 |             locale: locale,
 57 |             transcriptionOptions: censor ? [.etiquetteReplacements] : [],
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:61:27: error: 'SpeechModule' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 59 |             attributeOptions: outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
 60 |         )
 61 |         let modules: [any SpeechModule] = [transcriber]
    |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
    |                           `- note: add 'if #available' version check
 62 |
 63 |         let installedLocales = await SpeechTranscriber.installedLocales
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:63:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 61 |         let modules: [any SpeechModule] = [transcriber]
 62 |
 63 |         let installedLocales = await SpeechTranscriber.installedLocales
    |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
    |                                      `- note: add 'if #available' version check
 64 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == locale.identifier(.bcp47) }) {
 65 |             let piped = isatty(STDOUT_FILENO) == 0
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:72:40: error: 'AssetInventory' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 70 |                 Noora()
 71 |             }
 72 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
    |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
 73 |                 try await noora.progressBarStep(
 74 |                     message: "Downloading required assets…"
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:94:24: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 92 |         }
 93 |
 94 |         let analyzer = SpeechAnalyzer(modules: modules)
    |                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                        `- note: add 'if #available' version check
 95 |
 96 |         // Set up streaming input
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:97:77: error: 'AnalyzerInput' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 95 |
 96 |         // Set up streaming input
 97 |         let (inputSequence, inputContinuation) = AsyncStream.makeStream(of: AnalyzerInput.self)
    |                                                                             |- error: 'AnalyzerInput' is only available in visionOS 26 or newer
    |                                                                             `- note: add 'if #available' version check
 98 |
 99 |         // Get target audio format from the analyzer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:100:40: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
 98 |
 99 |         // Get target audio format from the analyzer
100 |         guard let targetFormat = await SpeechAnalyzer.bestAvailableAudioFormat(
    |                                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
    |                                        `- note: add 'if #available' version check
101 |             compatibleWith: modules
102 |         ) else {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:108:22: error: 'SCShareableContent' is unavailable in visionOS
106 |         // Set up ScreenCaptureKit for system audio capture
107 |         // Requires Screen Recording permission for the terminal app
108 |         let content: SCShareableContent
    |                      `- error: 'SCShareableContent' is unavailable in visionOS
109 |         do {
110 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:110:33: error: 'SCShareableContent' is unavailable in visionOS
108 |         let content: SCShareableContent
109 |         do {
110 |             content = try await SCShareableContent.excludingDesktopWindows(false, onScreenWindowsOnly: true)
    |                                 `- error: 'SCShareableContent' is unavailable in visionOS
111 |         } catch {
112 |             throw ListenError.screenRecordingPermissionDenied
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCShareableContent.h:146:12: note: 'SCShareableContent' has been explicitly marked unavailable here
144 |
145 | API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos)
146 | @interface SCShareableContent : NSObject
    |            `- note: 'SCShareableContent' has been explicitly marked unavailable here
147 | /*!
148 | @abstract getShareableContentWithCompletionHandler:completionHandler
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:118:22: error: 'SCContentFilter' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
116 |         }
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      |- error: 'SCContentFilter' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:118:22: error: 'init(display:excludingWindows:)' is unavailable in visionOS
116 |         }
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
    |                      `- error: 'init(display:excludingWindows:)' is unavailable in visionOS
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:160:1: note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
158 |  @discussion This method will create a SCContentFilter that captures the SCDisplay, excluding the passed in excluded SCWindow(s). The desktop background and dock will be included with this content filter.
159 | */
160 | - (instancetype)initWithDisplay:(SCDisplay *)display excludingWindows:(NSArray<SCWindow *>*)excluded API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(ios, visionos, tvos);
    | `- note: 'init(display:excludingWindows:)' has been explicitly marked unavailable here
161 |
162 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:119:28: error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
117 |
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
119 |         let streamConfig = SCStreamConfiguration()
    |                            |- error: 'SCStreamConfiguration' is only available in visionOS 27.0 or newer
    |                            `- note: add 'if #available' version check
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:120:22: error: 'capturesAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
118 |         let filter = SCContentFilter(display: display, excludingWindows: [])
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
    |                      |- error: 'capturesAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:121:22: error: 'sampleRate' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
119 |         let streamConfig = SCStreamConfiguration()
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
    |                      |- error: 'sampleRate' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
123 |         streamConfig.excludesCurrentProcessAudio = true
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:122:22: error: 'channelCount' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
120 |         streamConfig.capturesAudio = true
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
    |                      |- error: 'channelCount' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
123 |         streamConfig.excludesCurrentProcessAudio = true
124 |         // Minimal video settings since we only need audio
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:123:22: error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
121 |         streamConfig.sampleRate = Int(targetFormat.sampleRate)
122 |         streamConfig.channelCount = Int(targetFormat.channelCount)
123 |         streamConfig.excludesCurrentProcessAudio = true
    |                      |- error: 'excludesCurrentProcessAudio' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:125:22: error: 'width' is unavailable in visionOS
123 |         streamConfig.excludesCurrentProcessAudio = true
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
    |                      `- error: 'width' is unavailable in visionOS
126 |         streamConfig.height = 2
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:230:37: note: 'width' has been explicitly marked unavailable here
228 |  @abstract SCStreamProperty for output width as measured in pixels. On macOS default is set to 1920. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
229 |  */
230 | @property(nonatomic, assign) size_t width API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'width' has been explicitly marked unavailable here
231 |
232 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:126:22: error: 'height' is unavailable in visionOS
124 |         // Minimal video settings since we only need audio
125 |         streamConfig.width = 2
126 |         streamConfig.height = 2
    |                      `- error: 'height' is unavailable in visionOS
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
128 |
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:235:37: note: 'height' has been explicitly marked unavailable here
233 |  @abstract SCStreamProperty for output height as measured in pixels. on macOS default is set to 1080. In iOS/tvOS platforms, default is the native resolution width of the captured content. On supported embedded platforms, if either width or height is greater than native resolution, resulting frame will be capped at native resolution.
234 |  */
235 | @property(nonatomic, assign) size_t height API_AVAILABLE(macos(12.3), macCatalyst(18.2), ios(27.0), tvos(27.0)) API_UNAVAILABLE(visionos);
    |                                     `- note: 'height' has been explicitly marked unavailable here
236 |
237 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:127:22: error: 'minimumFrameInterval' is unavailable in visionOS
125 |         streamConfig.width = 2
126 |         streamConfig.height = 2
127 |         streamConfig.minimumFrameInterval = CMTime(value: 1, timescale: 1)
    |                      `- error: 'minimumFrameInterval' is unavailable in visionOS
128 |
129 |         let streamDelegate = AudioStreamDelegate(
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/XROS.platform/Developer/SDKs/XROS27.0.sdk/System/Library/Frameworks/ScreenCaptureKit.framework/Headers/SCStream.h:240:37: note: 'minimumFrameInterval' has been explicitly marked unavailable here
238 |  @abstract SCStreamProperty that specifies the desired minimum time in seconds between frame updates, allowing you to throttle the rate at which updates are received. The default value is 1/60, meaning that updates are coming in at or up to 60fps. Set this to kCMTimeZero to capture at display's native refresh rate.
239 |  */
240 | @property(nonatomic, assign) CMTime minimumFrameInterval API_AVAILABLE(macos(12.3), macCatalyst(18.2)) API_UNAVAILABLE(visionos, ios, tvos);
    |                                     `- note: 'minimumFrameInterval' has been explicitly marked unavailable here
241 |
242 | /*!
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:134:22: error: 'SCStream' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
132 |         )
133 |
134 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
    |                      |- error: 'SCStream' is only available in visionOS 27.0 or newer
    |                      `- note: add 'if #available' version check
135 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
136 |         do {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:135:59: error: 'audio' is only available in visionOS 27.0 or newer
 10 | // MARK: - Listen
 11 |
 12 | struct Listen: AsyncParsableCommand {
    |        `- note: add '@available' attribute to enclosing struct
 13 |     static let configuration = CommandConfiguration(
 14 |         abstract: "Transcribe live system audio in real time."
    :
 38 |     ) var wordTimestamps: Bool = false
 39 |
 40 |     @MainActor mutating func run() async throws {
    |                              `- note: add '@available' attribute to enclosing instance method
 41 |         guard SpeechTranscriber.isAvailable else {
 42 |             throw Transcribe.Error.speechTranscriberNotAvailable
    :
133 |
134 |         let stream = SCStream(filter: filter, configuration: streamConfig, delegate: nil)
135 |         try stream.addStreamOutput(streamDelegate, type: .audio, sampleHandlerQueue: .global())
    |                                                           |- error: 'audio' is only available in visionOS 27.0 or newer
    |                                                           `- note: add 'if #available' version check
136 |         do {
137 |             try await stream.startCapture()
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:190:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
188 |         let sentenceMaxLength = maxLength
189 |         if format == .txt {
190 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
191 |                 let text = String(result.text.characters)
192 |                 if !text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:204:13: warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
202 |             let includeWords = wordTimestamps
203 |             var segmentIndex = 0
204 |             for try await result in transcriber.results {
    |             `- warning: conformance of underlying type of 'some AsyncIteratorProtocol' to protocol 'AsyncIteratorProtocol' may be isolated and cannot be passed to @concurrent context [#IsolatedConformances]
205 |                 for chunk in result.text.splitAtTimeGaps(threshold: 1.5) {
206 |                     let allWords = includeWords ? chunk.wordTimestamps() : nil
/Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift:249:24: error: 'audio' is only available in visionOS 27.0 or newer
232 | // MARK: - AudioStreamDelegate
233 |
234 | final class AudioStreamDelegate: NSObject, SCStreamOutput, @unchecked Sendable {
    |             `- note: add '@available' attribute to enclosing class
235 |     // MARK: Lifecycle
236 |
    :
246 |     var converter: AVAudioConverter?
247 |
248 |     func stream(_: SCStream, didOutputSampleBuffer sampleBuffer: CMSampleBuffer, of type: SCStreamOutputType) {
    |          `- note: add '@available' attribute to enclosing instance method
249 |         guard type == .audio else { return }
    |                        |- error: 'audio' is only available in visionOS 27.0 or newer
    |                        `- note: add 'if #available' version check
250 |         guard sampleBuffer.isValid, sampleBuffer.numSamples > 0 else { return }
251 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/Listen.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Listen.swift
SwiftCompile normal arm64 Compiling\ TranscriptionEngine.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift (in target 'yap-product' from project 'yap')
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:23:15: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
21 |         }
22 |
23 |         guard SpeechTranscriber.isAvailable else {
   |               |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
   |               `- note: add 'if #available' version check
24 |             throw TranscriptionError.speechTranscriberNotAvailable
25 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:27:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
25 |         }
26 |
27 |         let supportedLocales = await SpeechTranscriber.supportedLocales
   |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
   |                                      `- note: add 'if #available' version check
28 |         guard supportedLocales.contains(where: { $0.identifier(.bcp47) == options.locale.identifier(.bcp47) }) else {
29 |             throw TranscriptionError.unsupportedLocale(options.locale.identifier)
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:32:29: error: 'AssetInventory' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
30 |         }
31 |
32 |         for locale in await AssetInventory.reservedLocales {
   |                             |- error: 'AssetInventory' is only available in visionOS 26 or newer
   |                             `- note: add 'if #available' version check
33 |             await AssetInventory.release(reservedLocale: locale)
34 |         }
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:33:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
31 |
32 |         for locale in await AssetInventory.reservedLocales {
33 |             await AssetInventory.release(reservedLocale: locale)
   |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
   |                   `- note: add 'if #available' version check
34 |         }
35 |         try await AssetInventory.reserve(locale: options.locale)
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:35:19: error: 'AssetInventory' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
33 |             await AssetInventory.release(reservedLocale: locale)
34 |         }
35 |         try await AssetInventory.reserve(locale: options.locale)
   |                   |- error: 'AssetInventory' is only available in visionOS 26 or newer
   |                   `- note: add 'if #available' version check
36 |
37 |         let transcriber = SpeechTranscriber(
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:37:27: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
35 |         try await AssetInventory.reserve(locale: options.locale)
36 |
37 |         let transcriber = SpeechTranscriber(
   |                           |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
   |                           `- note: add 'if #available' version check
38 |             locale: options.locale,
39 |             transcriptionOptions: options.censor ? [.etiquetteReplacements] : [],
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:43:27: error: 'SpeechModule' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
41 |             attributeOptions: options.outputFormat.needsAudioTimeRange ? [.audioTimeRange] : []
42 |         )
43 |         let modules: [any SpeechModule] = [transcriber]
   |                           |- error: 'SpeechModule' is only available in visionOS 26 or newer
   |                           `- note: add 'if #available' version check
44 |
45 |         let installedLocales = await SpeechTranscriber.installedLocales
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:45:38: error: 'SpeechTranscriber' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
43 |         let modules: [any SpeechModule] = [transcriber]
44 |
45 |         let installedLocales = await SpeechTranscriber.installedLocales
   |                                      |- error: 'SpeechTranscriber' is only available in visionOS 26 or newer
   |                                      `- note: add 'if #available' version check
46 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == options.locale.identifier(.bcp47) }) {
47 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:47:40: error: 'AssetInventory' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
45 |         let installedLocales = await SpeechTranscriber.installedLocales
46 |         if !installedLocales.contains(where: { $0.identifier(.bcp47) == options.locale.identifier(.bcp47) }) {
47 |             if let request = try await AssetInventory.assetInstallationRequest(supporting: modules) {
   |                                        |- error: 'AssetInventory' is only available in visionOS 26 or newer
   |                                        `- note: add 'if #available' version check
48 |                 try await request.downloadAndInstall()
49 |             }
/Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift:52:24: error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
 4 | // MARK: - TranscriptionEngine
 5 |
 6 | enum TranscriptionEngine {
   |      `- note: add '@available' attribute to enclosing enum
 7 |     struct Options: Sendable {
 8 |         var locale: Locale = .init(identifier: Locale.current.identifier)
   :
13 |     }
14 |
15 |     static func transcribe(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         file: URL,
17 |         options: Options = .init()
   :
50 |         }
51 |
52 |         let analyzer = SpeechAnalyzer(modules: modules)
   |                        |- error: 'SpeechAnalyzer' is only available in visionOS 26 or newer
   |                        `- note: add 'if #available' version check
53 |         let preparedAudioFile = try await TranscriptionAudioFile.prepare(file)
54 |         defer { preparedAudioFile.removeTemporaryFile() }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionEngine.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile TranscriptionEngine.swift
SwiftCompile normal arm64 Compiling\ OutputFormat.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/OutputFormat.swift (in target 'yap-product' from project 'yap')
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/OutputFormat.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile OutputFormat.swift
SwiftCompile normal arm64 Compiling\ AttributedString+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/Extensions/AttributedString+Extensions.swift (in target 'yap-product' from project 'yap')
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
<unknown>:0: error: 'subscript(dynamicMember:)' is only available in visionOS 26 or newer
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/Extensions/AttributedString+Extensions.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile AttributedString+Extensions.swift
SwiftCompile normal arm64 Compiling\ TranscriptionAudioFile.swift /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionAudioFile.swift (in target 'yap-product' from project 'yap')
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/Sources/yap/TranscriptionAudioFile.swift (in target 'yap-product' from project 'yap')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile TranscriptionAudioFile.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
2026-09-26 05:47:02.466 xcodebuild[1553:8325] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftCompile normal arm64 (in target 'yap-product' from project 'yap')
	SwiftEmitModule normal arm64 Emitting\ module\ for\ yap (in target 'yap-product' from project 'yap')
	Building workspace yap with scheme yap
(3 failures)
BUILD FAILURE 6.4 visionOS