The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SwiftTerm, reference v1.99.0 (2dad6a), with Swift 6.2 for Wasm on 12 Oct 2026 05:31:10 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344843-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/migueldeicaza/SwiftTerm.git
Reference: v1.99.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
From https://github.com/migueldeicaza/SwiftTerm
 * tag               v1.99.0    -> FETCH_HEAD
HEAD is now at 2dad6a1 Osc 7501 (#746)
Cloned https://github.com/migueldeicaza/SwiftTerm.git
Revision (git rev-parse @):
2dad6a1e516f755bed77cf9bbd09455062f54758
SUCCESS checkout https://github.com/migueldeicaza/SwiftTerm.git at v1.99.0
========================================
Build
========================================
Selected platform:         wasm
Swift version:             6.2
Building package at path:  $PWD
https://github.com/migueldeicaza/SwiftTerm.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344843-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1
wasm-6.2-latest: Pulling from saguaro1/spi-images
Digest: sha256:c092ff8dc506a2a30e6239b6992792fd4f7dfaaa46cac3b3c48d8fe35e954282
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/tayloraswift/swift-png
[1/7577] Fetching swift-png
[153/9922] Fetching swift-png, swift-docc-plugin
Fetched https://github.com/apple/swift-docc-plugin from cache (0.53s)
[1517/26689] Fetching swift-png, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (1.28s)
[3107/7577] Fetching swift-png
Fetched https://github.com/tayloraswift/swift-png from cache (3.89s)
Computing version for https://github.com/tayloraswift/swift-png
Computed https://github.com/tayloraswift/swift-png at 4.5.1 (4.07s)
Fetching https://github.com/rarestype/h
[1/1340] Fetching h
Fetched https://github.com/rarestype/h from cache (0.43s)
Computing version for https://github.com/rarestype/h
Computed https://github.com/rarestype/h at 1.0.1 (0.78s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.5.0 (0.90s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3837] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (1.10s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.31s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.16s)
Creating working copy for https://github.com/rarestype/h
Working copy of https://github.com/rarestype/h resolved at 1.0.1
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
Creating working copy for https://github.com/tayloraswift/swift-png
Working copy of https://github.com/tayloraswift/swift-png resolved at 4.5.1
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.5.0
[0/5] Write sources
[1/5] Write swift-version-24593BA9C3E375BF.txt
[3/9] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[4/9] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[5/9] Emitting module SwiftTermBuildInfoGenerator
[6/9] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[7/10] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[8/10] Write Objects.LinkFileList
[9/10] Linking SwiftTermBuildInfoGenerator-tool
[1/1] Compiling plugin SwiftTermBuildInfoPlugin
[2/2] Compiling plugin Swift-DocC Preview
[3/3] Compiling plugin Swift-DocC
[4/4] Compiling plugin GenerateManual
[5/5] Compiling plugin GenerateDoccReference
Building for debugging...
[5/39] Write sources
[16/39] Write swift-version-24593BA9C3E375BF.txt
[17/47] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[18/47] Write Objects.LinkFileList
[20/47] Emitting module BaseDigits
[20/47] Linking SwiftTermBuildInfoGenerator-tool
[21/47] Generate SwiftTerm build information
[22/47] Write sources
[24/47] Compiling BaseDigits BaseDigits.swift
[25/48] Wrapping AST for BaseDigits for debugging
[27/53] Compiling Base16 Base16.LowercaseDigits.swift
[28/53] Compiling Base16 Base16.Values.swift
[29/53] Compiling Base16 Base16.UppercaseDigits.swift
[30/53] Compiling Base16 Base16.swift
[31/53] Emitting module Base16
[32/54] Wrapping AST for Base16 for debugging
[34/56] Emitting module CRC
[35/56] Compiling CRC CRC32.swift
[36/57] Wrapping AST for CRC for debugging
[38/57] Emitting module ArgumentParserToolInfo
[39/57] Compiling ArgumentParserToolInfo ToolInfo.swift
[40/111] Wrapping AST for ArgumentParserToolInfo for debugging
[42/158] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[43/158] Compiling ArgumentParser CompletionKind.swift
[44/158] Compiling ArgumentParser Errors.swift
[45/158] Compiling ArgumentParser Flag.swift
[46/158] Compiling ArgumentParser NameSpecification.swift
[47/158] Compiling ArgumentParser Option.swift
[48/158] Compiling ArgumentParser OptionGroup.swift
[49/158] Compiling ArgumentParser ParentCommand.swift
[50/158] Compiling ArgumentParser AsyncParsableCommand.swift
[51/165] Emitting module SwiftTermBuildInfoGenerator
[52/165] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[53/165] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[54/166] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[55/166] Write Objects.LinkFileList
[57/166] Emitting module LZ77
[58/166] Compiling ArgumentParser InputKey.swift
[59/166] Compiling ArgumentParser InputOrigin.swift
[60/166] Compiling ArgumentParser Mutex.swift
[61/166] Compiling ArgumentParser Platform.swift
[62/166] Compiling ArgumentParser SequenceExtensions.swift
[63/166] Compiling ArgumentParser StringExtensions.swift
[64/166] Compiling ArgumentParser SwiftExtensions.swift
[65/166] Compiling ArgumentParser Tree.swift
[66/166] Compiling LZ77 LZ77.BlockState.swift
[67/166] Compiling LZ77 LZ77.BlockType.swift
[68/166] Compiling LZ77 LZ77.DecompressionError.swift
[69/166] Compiling LZ77 LZ77.Inflator.swift
[70/166] Compiling LZ77 LZ77.InflatorBuffers.Stream.swift
[71/166] Compiling LZ77 LZ77.InflatorBuffers.swift
[72/166] Compiling ArgumentParser CommandConfiguration.swift
[73/166] Compiling ArgumentParser CommandGroup.swift
[74/166] Compiling ArgumentParser EnumerableFlag.swift
[75/166] Compiling ArgumentParser ExpressibleByArgument.swift
[76/166] Compiling ArgumentParser ParsableArguments.swift
[77/166] Compiling ArgumentParser Name.swift
[78/166] Compiling ArgumentParser Parsed.swift
[79/166] Compiling ArgumentParser ParsedValues.swift
[86/172] Compiling LZ77 LZ77.Reversed.swift
[87/172] Compiling LZ77 LZ77.swift
[88/172] Compiling LZ77 SIMD16 (ext).swift
[89/172] Compiling LZ77 LZ77.Format.swift
[90/172] Compiling LZ77 LZ77.FormatType.swift
[91/172] Compiling LZ77 LZ77.MRC32.swift
[92/172] Compiling LZ77 LZ77.StreamIntegral.swift
[93/172] Compiling ArgumentParser BashCompletionsGenerator.swift
[94/172] Compiling ArgumentParser CompletionsGenerator.swift
[95/172] Compiling ArgumentParser FishCompletionsGenerator.swift
[96/172] Compiling ArgumentParser ZshCompletionsGenerator.swift
[97/172] Compiling ArgumentParser Argument.swift
[98/172] Compiling ArgumentParser ArgumentDiscussion.swift
[99/172] Compiling ArgumentParser ArgumentHelp.swift
[100/172] Compiling ArgumentParser ArgumentVisibility.swift
[101/172] Compiling ArgumentParser ParserError.swift
[102/172] Compiling ArgumentParser SplitArguments.swift
[103/172] Compiling ArgumentParser DumpHelpGenerator.swift
[104/172] Compiling ArgumentParser HelpCommand.swift
[105/172] Compiling ArgumentParser HelpGenerator.swift
[106/172] Compiling ArgumentParser MessageInfo.swift
[107/172] Compiling ArgumentParser UsageGenerator.swift
[108/172] Compiling ArgumentParser CollectionExtensions.swift
[109/172] Compiling ArgumentParser Foundation.swift
[110/172] Compiling ArgumentParser ParsableCommand.swift
[111/172] Compiling ArgumentParser ArgumentDecoder.swift
[112/172] Compiling ArgumentParser ArgumentDefinition.swift
[113/172] Compiling ArgumentParser ArgumentSet.swift
[114/172] Compiling ArgumentParser CommandParser.swift
[115/173] Wrapping AST for LZ77 for debugging
[117/217] Compiling ArgumentParser AsyncCompletionsValidator.swift
[118/217] Compiling ArgumentParser CodingKeyValidator.swift
[119/217] Compiling ArgumentParser NonsenseFlagsValidator.swift
[120/217] Compiling ArgumentParser ParsableArgumentsValidation.swift
[121/217] Compiling ArgumentParser PositionalArgumentsValidator.swift
[122/217] Compiling ArgumentParser UniqueNamesValidator.swift
[122/217] Linking SwiftTermBuildInfoGenerator.wasm
[124/217] Compiling PNG PNG.Layout.swift
[125/217] Compiling PNG General.swift
[126/217] Compiling PNG LZ77.DecompressionError (ext).swift
[127/217] Compiling PNG LZ77.DeflateHeaderError (ext).swift
[128/217] Compiling PNG Array (ext).swift
[129/217] Compiling PNG ArraySlice (ext).swift
[130/217] Compiling PNG PNG.Color.swift
[131/217] Emitting module PNG
[132/223] Compiling PNG PNG.BytestreamSource.swift
[133/223] Compiling PNG PNG.Chunk.swift
[134/223] Compiling PNG PNG.LexingError.swift
[135/223] Compiling PNG PNG.Error.swift
[136/223] Compiling PNG PNG.Image.swift
[137/223] Compiling PNG PNG.Format.Pixel.swift
[138/223] Compiling PNG PNG.Format.swift
[139/223] Emitting module ArgumentParser
[140/223] Compiling PNG PNG.DecodingError.swift
[141/223] Compiling PNG PNG.Metadata.swift
[142/223] Compiling PNG PNG.Standard.swift
[143/223] Compiling PNG PNG.Encoder.Pass.swift
[144/223] Compiling PNG PNG.Encoder.swift
[145/223] Compiling PNG PNG.FormattingError.swift
[146/223] Compiling PNG PNG.BytestreamDestination.swift
[147/223] Compiling PNG PNG.TimeModified.swift
[148/223] Compiling PNG PNG.Transparency.Case.swift
[149/223] Compiling PNG PNG.Transparency.swift
[150/223] Compiling PNG System.swift
[151/223] Compiling PNG UnsafeMutableBufferPointer (ext).swift
[152/223] Compiling PNG __Entrypoint.swift
[153/223] Compiling PNG PNG.PhysicalDimensions.swift
[154/223] Compiling PNG PNG.SignificantBits.Case.swift
[155/223] Compiling PNG PNG.SignificantBits.swift
[156/223] Compiling PNG PNG.SuggestedPalette.Entries.swift
[157/223] Compiling PNG PNG.SuggestedPalette.swift
[158/223] Compiling PNG PNG.Text.swift
[159/223] Compiling PNG PNG.Gamma.swift
[160/223] Compiling PNG PNG.Header.swift
[161/223] Compiling PNG PNG.Histogram.swift
[162/223] Compiling PNG PNG.Palette.swift
[163/223] Compiling PNG PNG.ParsingError.swift
[164/223] Compiling PNG PNG.Percentmille.swift
[165/223] Compiling PNG PNG.swift
[166/223] Compiling PNG PNG.Background.Case.swift
[167/223] Compiling PNG PNG.Background.swift
[168/223] Compiling PNG PNG.Chromaticity.swift
[169/223] Compiling PNG PNG.ColorProfile.swift
[170/223] Compiling PNG PNG.ColorRendering.swift
[184/223] Compiling PNG PNG.RGBA.swift
[185/223] Compiling PNG PNG.VA.swift
[186/223] Compiling PNG PNG.Context.swift
[187/223] Compiling PNG PNG.Decoder.swift
[190/224] Wrapping AST for ArgumentParser for debugging
[217/225] Wrapping AST for PNG for debugging
[219/281] Emitting module SwiftTerm
[220/288] Compiling SwiftTerm TerminalRenderSnapshot.swift
[221/288] Compiling SwiftTerm TerminalViewport.swift
[222/288] Compiling SwiftTerm WASIHostEvents.swift
[223/288] Compiling SwiftTerm Position.swift
[224/288] Compiling SwiftTerm Profiling.swift
[225/288] Compiling SwiftTerm ProgramStatus.swift
[226/288] Compiling SwiftTerm Pty.swift
[227/288] Compiling SwiftTerm SearchEngine.swift
[228/288] Compiling SwiftTerm File.swift
[229/288] Compiling SwiftTerm HangulInput.swift
[230/288] Compiling SwiftTerm HeadlessTerminal.swift
[231/288] Compiling SwiftTerm IOTimerQueue.swift
[232/288] Compiling SwiftTerm KittyClipboardGrants.swift
[233/288] Compiling SwiftTerm KittyClipboardProtocol.swift
[234/288] Compiling SwiftTerm KittyGraphics.swift
[235/288] Compiling SwiftTerm KittyGraphicsSnapshot.swift
[236/288] Compiling SwiftTerm SearchLineCache.swift
[237/288] Compiling SwiftTerm SearchOptions.swift
[238/288] Compiling SwiftTerm SearchService.swift
[239/288] Compiling SwiftTerm SearchState.swift
[240/288] Compiling SwiftTerm SelectionService.swift
[241/288] Compiling SwiftTerm SemanticPrompt.swift
[242/288] Compiling SwiftTerm SixelDcsHandler.swift
[243/288] Compiling SwiftTerm SyncDebug.swift
[244/288] Compiling SwiftTerm KittyKeyboardEncoder.swift
[245/288] Compiling SwiftTerm KittyKeyboardProtocol.swift
[246/288] Compiling SwiftTerm KittyPlaceholder.swift
[247/288] Compiling SwiftTerm Line.swift
[248/288] Compiling SwiftTerm LocalProcess.swift
[249/288] Compiling SwiftTerm Locked.swift
[250/288] Compiling SwiftTerm TerminalKittyPlaceholders.swift
[251/288] Compiling SwiftTerm TerminalRasterImage.swift
[252/288] Compiling SwiftTerm CircularList.swift
[253/288] Compiling SwiftTerm Colors.swift
[254/288] Compiling SwiftTerm CsiParameters.swift
[255/288] Compiling SwiftTerm DECPrivateModes.swift
[256/288] Compiling SwiftTerm EmbeddedSupport.swift
[257/288] Compiling SwiftTerm EscapeSequenceParser.swift
[258/288] Compiling SwiftTerm EscapeSequences.swift
[259/288] Compiling SwiftTerm ExtensionsTerminal.swift
[260/288] Compiling SwiftTerm Bidi.swift
[261/288] Compiling SwiftTerm Buffer.swift
[262/288] Compiling SwiftTerm BufferLine.swift
[263/288] Compiling SwiftTerm BufferSet.swift
[264/288] Compiling SwiftTerm ByteRunScanner.swift
[265/288] Compiling SwiftTerm CellStorage.swift
[266/288] Compiling SwiftTerm CharData.swift
[267/288] Compiling SwiftTerm CharSets.swift
[268/288] Compiling SwiftTerm Terminal.swift
[269/288] Compiling SwiftTerm TerminalIOPipeline.swift
[270/288] Compiling SwiftTerm TerminalLock.swift
[271/288] Compiling SwiftTerm TerminalMouseInput.swift
[272/288] Compiling SwiftTerm TerminalOptions.swift
[273/288] Compiling SwiftTerm TerminalPaste.swift
[274/288] Compiling SwiftTerm TerminalTapPolicy.swift
[275/288] Compiling SwiftTerm TerminalViewSearch.swift
[276/288] Compiling SwiftTerm TerminalWebInput.swift
[277/288] Compiling SwiftTerm TextInputUTF16.swift
[278/288] Compiling SwiftTerm UnicodeWidthData.swift
[279/288] Compiling SwiftTerm Utilities.swift
[280/288] Compiling SwiftTerm SwiftTermBuildInfo.swift
[281/288] Compiling SwiftTerm SwiftTermTerminfo.swift
[282/289] Wrapping AST for SwiftTerm for debugging
[284/296] Emitting module SwiftTermFuzz
[285/296] Compiling SwiftTermFuzz main.swift
[286/297] Wrapping AST for SwiftTermFuzz for debugging
[287/297] Write Objects.LinkFileList
[289/297] Compiling Termcast AsciicastFormat.swift
[290/297] Compiling Termcast main.swift
[291/297] Compiling Termcast TermcastPlayer.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[292/297] Emitting module Termcast
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:19:26: error: cannot find type 'LocalProcess' in scope
 17 | @MainActor
 18 | private final class TermcastInputHandler {
 19 |     private let process: LocalProcess
    |                          `- error: cannot find type 'LocalProcess' in scope
 20 |     private let startTime: TimeInterval
 21 |     private let fileHandle: FileHandle?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:24:19: error: cannot find type 'LocalProcess' in scope
 22 |     private let encoder = JSONEncoder()
 23 |
 24 |     init(process: LocalProcess, startTime: TimeInterval, fileHandle: FileHandle?) {
    |                   `- error: cannot find type 'LocalProcess' in scope
 25 |         self.process = process
 26 |         self.startTime = startTime
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:53:26: error: cannot find type 'LocalProcess' in scope
 51 |     private var fileHandle: FileHandle?
 52 |     private var startTime: TimeInterval = 0
 53 |     private var process: LocalProcess?
    |                          `- error: cannot find type 'LocalProcess' in scope
 54 |     private var initialWindowSize: winsize = winsize()
 55 |     private let encoder = JSONEncoder()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:36: error: cannot find type 'winsize' in scope
 52 |     private var startTime: TimeInterval = 0
 53 |     private var process: LocalProcess?
 54 |     private var initialWindowSize: winsize = winsize()
    |                                    `- error: cannot find type 'winsize' in scope
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:56:31: error: cannot find type 'DispatchSourceTimer' in scope
 54 |     private var initialWindowSize: winsize = winsize()
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
    |                               `- error: cannot find type 'DispatchSourceTimer' in scope
 57 |     private var originalTermios: termios = termios()
 58 |     private var originalStdoutTermios: termios = termios()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:34: error: cannot find type 'termios' in scope
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
 57 |     private var originalTermios: termios = termios()
    |                                  `- error: cannot find type 'termios' in scope
 58 |     private var originalStdoutTermios: termios = termios()
 59 |     private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:40: error: cannot find type 'termios' in scope
 56 |     private var timeoutTimer: DispatchSourceTimer?
 57 |     private var originalTermios: termios = termios()
 58 |     private var originalStdoutTermios: termios = termios()
    |                                        `- error: cannot find type 'termios' in scope
 59 |     private var terminalModeSet = false
 60 |     private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:381:29: error: cannot find type 'LocalProcessDelegate' in scope
379 | }
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
    |                             `- error: cannot find type 'LocalProcessDelegate' in scope
382 |     func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
383 |         debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:382:38: error: cannot find type 'LocalProcess' in scope
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
382 |     func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
    |                                      `- error: cannot find type 'LocalProcess' in scope
383 |         debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
384 |         restoreTerminalMode()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:403:29: error: cannot find type 'winsize' in scope
401 |     }
402 |
403 |     func getWindowSize() -> winsize {
    |                             `- error: cannot find type 'winsize' in scope
404 |         return initialWindowSize
405 |     }
[293/297] Compiling Termcast TermcastRecorder.swift
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:19:26: error: cannot find type 'LocalProcess' in scope
 17 | @MainActor
 18 | private final class TermcastInputHandler {
 19 |     private let process: LocalProcess
    |                          `- error: cannot find type 'LocalProcess' in scope
 20 |     private let startTime: TimeInterval
 21 |     private let fileHandle: FileHandle?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:24:19: error: cannot find type 'LocalProcess' in scope
 22 |     private let encoder = JSONEncoder()
 23 |
 24 |     init(process: LocalProcess, startTime: TimeInterval, fileHandle: FileHandle?) {
    |                   `- error: cannot find type 'LocalProcess' in scope
 25 |         self.process = process
 26 |         self.startTime = startTime
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:53:26: error: cannot find type 'LocalProcess' in scope
 51 |     private var fileHandle: FileHandle?
 52 |     private var startTime: TimeInterval = 0
 53 |     private var process: LocalProcess?
    |                          `- error: cannot find type 'LocalProcess' in scope
 54 |     private var initialWindowSize: winsize = winsize()
 55 |     private let encoder = JSONEncoder()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:36: error: cannot find type 'winsize' in scope
 52 |     private var startTime: TimeInterval = 0
 53 |     private var process: LocalProcess?
 54 |     private var initialWindowSize: winsize = winsize()
    |                                    `- error: cannot find type 'winsize' in scope
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:56:31: error: cannot find type 'DispatchSourceTimer' in scope
 54 |     private var initialWindowSize: winsize = winsize()
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
    |                               `- error: cannot find type 'DispatchSourceTimer' in scope
 57 |     private var originalTermios: termios = termios()
 58 |     private var originalStdoutTermios: termios = termios()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:34: error: cannot find type 'termios' in scope
 55 |     private let encoder = JSONEncoder()
 56 |     private var timeoutTimer: DispatchSourceTimer?
 57 |     private var originalTermios: termios = termios()
    |                                  `- error: cannot find type 'termios' in scope
 58 |     private var originalStdoutTermios: termios = termios()
 59 |     private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:40: error: cannot find type 'termios' in scope
 56 |     private var timeoutTimer: DispatchSourceTimer?
 57 |     private var originalTermios: termios = termios()
 58 |     private var originalStdoutTermios: termios = termios()
    |                                        `- error: cannot find type 'termios' in scope
 59 |     private var terminalModeSet = false
 60 |     private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:381:29: error: cannot find type 'LocalProcessDelegate' in scope
379 | }
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
    |                             `- error: cannot find type 'LocalProcessDelegate' in scope
382 |     func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
383 |         debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:382:38: error: cannot find type 'LocalProcess' in scope
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
382 |     func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
    |                                      `- error: cannot find type 'LocalProcess' in scope
383 |         debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
384 |         restoreTerminalMode()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:403:29: error: cannot find type 'winsize' in scope
401 |     }
402 |
403 |     func getWindowSize() -> winsize {
    |                             `- error: cannot find type 'winsize' in scope
404 |         return initialWindowSize
405 |     }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:69:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused [#no-usage]
 67 |
 68 |         // Create the file and get handle
 69 |         FileManager.default.createFile(atPath: filePath, contents: nil)
    |                             `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused [#no-usage]
 70 |         fileHandle = try FileHandle(forWritingTo: url)
 71 |         debugMessage("[DEBUG] File handle created\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:92:19: error: cannot find 'LocalProcess' in scope
 90 |         // Create and start the local process
 91 |         let recorder = self
 92 |         process = LocalProcess(delegate: recorder)
    |                   `- error: cannot find 'LocalProcess' in scope
 93 |         debugMessage("[DEBUG] LocalProcess created\n")
 94 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:120:22: error: value of type 'RunLoop' has no member 'run'
118 |         debugMessage("[DEBUG] Entering main run loop\n")
119 |         // Wait for process to finish
120 |         RunLoop.main.run()
    |                      `- error: value of type 'RunLoop' has no member 'run'
121 |     }
122 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:140:51: error: cannot infer contextual base in reference to member 'utf8'
138 |         let headerData = try encoder.encode(header)
139 |         let headerLine = String(data: headerData, encoding: .utf8)! + "\n"
140 |         fileHandle?.write(headerLine.data(using: .utf8)!)
    |                                                   `- error: cannot infer contextual base in reference to member 'utf8'
141 |     }
142 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:154:17: error: cannot find 'winsize' in scope
152 |
153 |     private func getTerminalSize() -> (width: Int, height: Int) {
154 |         var w = winsize()
    |                 `- error: cannot find 'winsize' in scope
155 | #if os(macOS)
156 |         if ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0 {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:160:38: error: cannot find 'TIOCGWINSZ' in scope
158 |         }
159 | #else
160 |         if ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &w) == 0 {
    |                                      `- error: cannot find 'TIOCGWINSZ' in scope
161 |             return (width: Int(w.ws_col), height: Int(w.ws_row))
162 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:168:22: error: cannot find 'DispatchSource' in scope
166 |
167 |     private func setupResizeHandler() {
168 |         let source = DispatchSource.makeSignalSource(signal: SIGWINCH, queue: .main)
    |                      `- error: cannot find 'DispatchSource' in scope
169 |         source.setEventHandler { [weak self] in
170 |             let newSize = self?.getTerminalSize() ?? (width: 80, height: 24)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:168:62: error: cannot find 'SIGWINCH' in scope
166 |
167 |     private func setupResizeHandler() {
168 |         let source = DispatchSource.makeSignalSource(signal: SIGWINCH, queue: .main)
    |                                                              `- error: cannot find 'SIGWINCH' in scope
169 |         source.setEventHandler { [weak self] in
170 |             let newSize = self?.getTerminalSize() ?? (width: 80, height: 24)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:168:80: error: cannot infer contextual base in reference to member 'main'
166 |
167 |     private func setupResizeHandler() {
168 |         let source = DispatchSource.makeSignalSource(signal: SIGWINCH, queue: .main)
    |                                                                                `- error: cannot infer contextual base in reference to member 'main'
169 |         source.setEventHandler { [weak self] in
170 |             let newSize = self?.getTerminalSize() ?? (width: 80, height: 24)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:177:30: error: cannot find 'winsize' in scope
175 |
176 |             // Update the process window size
177 |             var newWinsize = winsize()
    |                              `- error: cannot find 'winsize' in scope
178 |             newWinsize.ws_col = UInt16(newSize.width)
179 |             newWinsize.ws_row = UInt16(newSize.height)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:181:21: error: cannot find 'PseudoTerminalHelpers' in scope
179 |             newWinsize.ws_row = UInt16(newSize.height)
180 |             if let masterFd = self?.process?.childfd {
181 |                 _ = PseudoTerminalHelpers.setWinSize(masterPtyDescriptor: masterFd, windowSize: &newWinsize)
    |                     `- error: cannot find 'PseudoTerminalHelpers' in scope
182 |             }
183 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:184:9: error: cannot find 'signal' in scope
182 |             }
183 |         }
184 |         signal(SIGWINCH, SIG_IGN)
    |         `- error: cannot find 'signal' in scope
185 |         source.activate()
186 |     }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:184:16: error: cannot find 'SIGWINCH' in scope
182 |             }
183 |         }
184 |         signal(SIGWINCH, SIG_IGN)
    |                `- error: cannot find 'SIGWINCH' in scope
185 |         source.activate()
186 |     }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:184:26: error: cannot find 'SIG_IGN' in scope
182 |             }
183 |         }
184 |         signal(SIGWINCH, SIG_IGN)
    |                          `- error: cannot find 'SIG_IGN' in scope
185 |         source.activate()
186 |     }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:199:12: error: cannot find 'tcgetattr' in scope
197 |
198 |         // Save original terminal settings
199 |         if tcgetattr(STDIN_FILENO, &originalTermios) != 0 {
    |            `- error: cannot find 'tcgetattr' in scope
200 |             let error = errno
201 |             debugMessage("[DEBUG] tcgetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:40: error: cannot find 'ECHO' in scope
212 |         rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
    |                                        `- error: cannot find 'ECHO' in scope
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:47: error: cannot find 'ICANON' in scope
212 |         rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
    |                                               `- error: cannot find 'ICANON' in scope
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:56: error: cannot find 'ISIG' in scope
212 |         rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
    |                                                        `- error: cannot find 'ISIG' in scope
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:63: error: cannot find 'IEXTEN' in scope
212 |         rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
    |                                                               `- error: cannot find 'IEXTEN' in scope
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:40: error: cannot find 'IXON' in scope
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
    |                                        `- error: cannot find 'IXON' in scope
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:47: error: cannot find 'ICRNL' in scope
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
    |                                               `- error: cannot find 'ICRNL' in scope
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:55: error: cannot find 'BRKINT' in scope
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
    |                                                       `- error: cannot find 'BRKINT' in scope
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:64: error: cannot find 'INPCK' in scope
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
    |                                                                `- error: cannot find 'INPCK' in scope
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:72: error: cannot find 'ISTRIP' in scope
213 | #else
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
    |                                                                        `- error: cannot find 'ISTRIP' in scope
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:216:40: error: cannot find 'OPOST' in scope
214 |         rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
    |                                        `- error: cannot find 'OPOST' in scope
217 |         rawTermios.c_cflag |= UInt32(CS8)
218 | #endif
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:217:38: error: cannot find 'CS8' in scope
215 |         rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 |         rawTermios.c_oflag &= ~(UInt32(OPOST))
217 |         rawTermios.c_cflag |= UInt32(CS8)
    |                                      `- error: cannot find 'CS8' in scope
218 | #endif
219 |         rawTermios.c_cc.16 = 1  // VMIN
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:223:12: error: cannot find 'tcsetattr' in scope
221 |
222 |         // Apply raw mode settings
223 |         if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
    |            `- error: cannot find 'tcsetattr' in scope
224 |             let error = errno
225 |             debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:223:36: error: cannot find 'TCSAFLUSH' in scope
221 |
222 |         // Apply raw mode settings
223 |         if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
    |                                    `- error: cannot find 'TCSAFLUSH' in scope
224 |             let error = errno
225 |             debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:230:29: error: cannot find 'termios' in scope
228 |
229 |         // Verify raw mode was set
230 |         var verifyTermios = termios()
    |                             `- error: cannot find 'termios' in scope
231 |         if tcgetattr(STDIN_FILENO, &verifyTermios) == 0 {
232 |             debugMessage("[DEBUG] Verified c_lflag after raw mode: \(verifyTermios.c_lflag)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:231:12: error: cannot find 'tcgetattr' in scope
229 |         // Verify raw mode was set
230 |         var verifyTermios = termios()
231 |         if tcgetattr(STDIN_FILENO, &verifyTermios) == 0 {
    |            `- error: cannot find 'tcgetattr' in scope
232 |             debugMessage("[DEBUG] Verified c_lflag after raw mode: \(verifyTermios.c_lflag)\n")
233 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:243:12: error: cannot find 'tcgetattr' in scope
241 |
242 |         // Save original stdout settings
243 |         if tcgetattr(STDOUT_FILENO, &originalStdoutTermios) != 0 {
    |            `- error: cannot find 'tcgetattr' in scope
244 |             debugMessage("[DEBUG] Warning: Failed to get stdout terminal attributes\n")
245 |             return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:258:26: error: cannot find 'termios' in scope
256 |
257 |         // Get terminal settings from the pty
258 |         var ptyTermios = termios()
    |                          `- error: cannot find 'termios' in scope
259 |         if tcgetattr(masterFd, &ptyTermios) != 0 {
260 |             debugMessage("[DEBUG] Warning: Failed to get pty terminal attributes\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:259:12: error: cannot find 'tcgetattr' in scope
257 |         // Get terminal settings from the pty
258 |         var ptyTermios = termios()
259 |         if tcgetattr(masterFd, &ptyTermios) != 0 {
    |            `- error: cannot find 'tcgetattr' in scope
260 |             debugMessage("[DEBUG] Warning: Failed to get pty terminal attributes\n")
261 |             return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:270:12: error: cannot find 'tcsetattr' in scope
268 |         newStdoutTermios.c_oflag = ptyTermios.c_oflag  // Copy output processing flags
269 |
270 |         if tcsetattr(STDOUT_FILENO, TCSANOW, &newStdoutTermios) != 0 {
    |            `- error: cannot find 'tcsetattr' in scope
271 |             debugMessage("[DEBUG] Warning: Failed to set stdout terminal attributes\n")
272 |             return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:270:37: error: cannot find 'TCSANOW' in scope
268 |         newStdoutTermios.c_oflag = ptyTermios.c_oflag  // Copy output processing flags
269 |
270 |         if tcsetattr(STDOUT_FILENO, TCSANOW, &newStdoutTermios) != 0 {
    |                                     `- error: cannot find 'TCSANOW' in scope
271 |             debugMessage("[DEBUG] Warning: Failed to set stdout terminal attributes\n")
272 |             return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:297:9: error: cannot find 'DispatchQueue' in scope
295 |             fileHandle: fileHandle)
296 |
297 |         DispatchQueue.global().async {
    |         `- error: cannot find 'DispatchQueue' in scope
298 |             debugMessage("[DEBUG] Input forwarding thread started (NEW VERSION)\n")
299 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:309:66: error: cannot find 'O_NONBLOCK' in scope
307 |                 // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 |                 let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
309 |                 _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
    |                                                                  `- error: cannot find 'O_NONBLOCK' in scope
310 |
311 |                 var buffer = [UInt8](repeating: 0, count: 1)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:325:21: error: cannot find 'DispatchQueue' in scope
323 |                     // Keep process and recording state on the main actor. The
324 |                     // main queue preserves the input order from this reader.
325 |                     DispatchQueue.main.async {
    |                     `- error: cannot find 'DispatchQueue' in scope
326 |                         inputHandler.forward(data: data, inputString: inputString)
327 |                     }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:349:24: error: cannot find 'DispatchSource' in scope
347 |
348 |     private func setupTimeoutTimer(_ timeout: Double) {
349 |         timeoutTimer = DispatchSource.makeTimerSource(queue: .main)
    |                        `- error: cannot find 'DispatchSource' in scope
350 |         timeoutTimer?.schedule(deadline: .now() + timeout, repeating: .never)
351 |         timeoutTimer?.setEventHandler { [weak self] in
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:349:63: error: cannot infer contextual base in reference to member 'main'
347 |
348 |     private func setupTimeoutTimer(_ timeout: Double) {
349 |         timeoutTimer = DispatchSource.makeTimerSource(queue: .main)
    |                                                               `- error: cannot infer contextual base in reference to member 'main'
350 |         timeoutTimer?.schedule(deadline: .now() + timeout, repeating: .never)
351 |         timeoutTimer?.setEventHandler { [weak self] in
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:350:43: error: cannot call value of non-function type 'Date'
348 |     private func setupTimeoutTimer(_ timeout: Double) {
349 |         timeoutTimer = DispatchSource.makeTimerSource(queue: .main)
350 |         timeoutTimer?.schedule(deadline: .now() + timeout, repeating: .never)
    |                                           `- error: cannot call value of non-function type 'Date'
351 |         timeoutTimer?.setEventHandler { [weak self] in
352 |             debugMessage("\nRecording timeout reached. Terminating...\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:350:72: error: cannot infer contextual base in reference to member 'never'
348 |     private func setupTimeoutTimer(_ timeout: Double) {
349 |         timeoutTimer = DispatchSource.makeTimerSource(queue: .main)
350 |         timeoutTimer?.schedule(deadline: .now() + timeout, repeating: .never)
    |                                                                        `- error: cannot infer contextual base in reference to member 'never'
351 |         timeoutTimer?.setEventHandler { [weak self] in
352 |             debugMessage("\nRecording timeout reached. Terminating...\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:370:13: error: cannot find 'tcsetattr' in scope
368 |         if terminalModeSet {
369 |             debugMessage("[DEBUG] Restoring original stdin terminal mode\n")
370 |             tcsetattr(STDIN_FILENO, TCSAFLUSH, &originalTermios)
    |             `- error: cannot find 'tcsetattr' in scope
371 |             terminalModeSet = false
372 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:370:37: error: cannot find 'TCSAFLUSH' in scope
368 |         if terminalModeSet {
369 |             debugMessage("[DEBUG] Restoring original stdin terminal mode\n")
370 |             tcsetattr(STDIN_FILENO, TCSAFLUSH, &originalTermios)
    |                                     `- error: cannot find 'TCSAFLUSH' in scope
371 |             terminalModeSet = false
372 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:375:13: error: cannot find 'tcsetattr' in scope
373 |         if stdoutModeSet {
374 |             debugMessage("[DEBUG] Restoring original stdout terminal mode\n")
375 |             tcsetattr(STDOUT_FILENO, TCSAFLUSH, &originalStdoutTermios)
    |             `- error: cannot find 'tcsetattr' in scope
376 |             stdoutModeSet = false
377 |         }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:375:38: error: cannot find 'TCSAFLUSH' in scope
373 |         if stdoutModeSet {
374 |             debugMessage("[DEBUG] Restoring original stdout terminal mode\n")
375 |             tcsetattr(STDOUT_FILENO, TCSAFLUSH, &originalStdoutTermios)
    |                                      `- error: cannot find 'TCSAFLUSH' in scope
376 |             stdoutModeSet = false
377 |         }
[293/297] Linking SwiftTermFuzz.wasm
BUILD FAILURE 6.2 wasm