Build Information
Failed to build swift-interaction, reference main (a23060), with Swift 6.3 for Android on 16 Jul 2026 21:29:25 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-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:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 333316120c8b89ed7d21f1b34865290794301d91
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Ryu0118/swift-interaction.git
Reference: main
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/Ryu0118/swift-interaction
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at a230607 Redesign ValidationRule as an async, closure-based value type (#2)
Cloned https://github.com/Ryu0118/swift-interaction.git
Revision (git rev-parse @):
a2306079edb72712e4e8b262b4d420d292200009
SUCCESS checkout https://github.com/Ryu0118/swift-interaction.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/Ryu0118/swift-interaction.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-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:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from saguaro1/spi-images
Digest: sha256:451958f7df55f9af673f8b0851dc526f2aee3222db374ae53b89fa21ad564bc8
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.3-latest
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2325] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.49s)
Computing version for https://github.com/swiftlang/swift-docc-plugin
Computed https://github.com/swiftlang/swift-docc-plugin at 1.5.0 (1.45s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3754] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.56s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.95s)
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 1.5.0
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
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
Building for debugging...
[2/4] Write sources
[3/4] Write swift-version-272D24FF697CF451.txt
[5/26] Emitting module Interaction
[6/28] Compiling Interaction ConfirmationLoop.swift
[7/28] Compiling Interaction LineBuffer.swift
[8/28] Compiling Interaction MultipleChoiceLoop.swift
[9/28] Compiling Interaction InteractionProviding+Convenience.swift
[10/28] Compiling Interaction InteractionProviding+PromptConvenience.swift
[11/28] Compiling Interaction BlockRenderer.swift
[12/28] Compiling Interaction Prompt.swift
[13/28] Compiling Interaction PromptRendering.swift
[14/28] Compiling Interaction SingleChoiceLoop.swift
[15/28] Compiling Interaction SingleSelectionState.swift
[16/28] Compiling Interaction DisplayWidth.swift
[17/28] Compiling Interaction StyledText.swift
[18/28] Compiling Interaction StandardKeyInput.swift
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:22:24: error: cannot find 'termios' in scope
20 | /// Puts the terminal into raw input mode for the duration of the body.
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
| `- error: cannot find 'termios' in scope
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
24 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:15: error: cannot find 'tcgetattr' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:25: error: cannot find 'STDIN_FILENO' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:25: error: cannot find 'tcflag_t' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:34: error: cannot find 'ECHO' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:41: error: cannot find 'ICANON' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:50: error: cannot find 'ISIG' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:9: error: cannot find 'tcsetattr' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:19: error: cannot find 'STDIN_FILENO' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:33: error: cannot find 'TCSANOW' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:17: error: cannot find 'tcsetattr' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:27: error: cannot find 'STDIN_FILENO' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:41: error: cannot find 'TCSANOW' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:36:24: error: cannot find 'termios' in scope
34 | /// Puts the terminal into raw input mode for the duration of the asynchronous body.
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
| `- error: cannot find 'termios' in scope
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
38 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:15: error: cannot find 'tcgetattr' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:25: error: cannot find 'STDIN_FILENO' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:25: error: cannot find 'tcflag_t' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:34: error: cannot find 'ECHO' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:41: error: cannot find 'ICANON' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:50: error: cannot find 'ISIG' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:9: error: cannot find 'tcsetattr' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:19: error: cannot find 'STDIN_FILENO' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:33: error: cannot find 'TCSANOW' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:17: error: cannot find 'tcsetattr' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:27: error: cannot find 'STDIN_FILENO' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:41: error: cannot find 'TCSANOW' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:21: error: cannot find 'read' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'read' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:26: error: cannot find 'STDIN_FILENO' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'STDIN_FILENO' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:26: error: cannot find 'isatty' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'isatty' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:33: error: cannot find 'STDIN_FILENO' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'STDIN_FILENO' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:27: error: cannot find 'isatty' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'isatty' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:34: error: cannot find 'STDOUT_FILENO' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'STDOUT_FILENO' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:41:20: error: cannot find 'winsize' in scope
39 | guard stdoutIsTTY else { return nil }
40 |
41 | var size = winsize()
| `- error: cannot find 'winsize' in scope
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
43 | guard result == 0, size.ws_col > 0 else { return nil }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:22: error: cannot find 'ioctl' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'ioctl' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:28: error: cannot find 'STDOUT_FILENO' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'STDOUT_FILENO' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:48: error: cannot find 'TIOCGWINSZ' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'TIOCGWINSZ' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
[19/28] Compiling Interaction TerminalCapabilities.swift
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:22:24: error: cannot find 'termios' in scope
20 | /// Puts the terminal into raw input mode for the duration of the body.
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
| `- error: cannot find 'termios' in scope
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
24 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:15: error: cannot find 'tcgetattr' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:25: error: cannot find 'STDIN_FILENO' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:25: error: cannot find 'tcflag_t' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:34: error: cannot find 'ECHO' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:41: error: cannot find 'ICANON' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:50: error: cannot find 'ISIG' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:9: error: cannot find 'tcsetattr' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:19: error: cannot find 'STDIN_FILENO' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:33: error: cannot find 'TCSANOW' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:17: error: cannot find 'tcsetattr' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:27: error: cannot find 'STDIN_FILENO' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:41: error: cannot find 'TCSANOW' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:36:24: error: cannot find 'termios' in scope
34 | /// Puts the terminal into raw input mode for the duration of the asynchronous body.
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
| `- error: cannot find 'termios' in scope
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
38 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:15: error: cannot find 'tcgetattr' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:25: error: cannot find 'STDIN_FILENO' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:25: error: cannot find 'tcflag_t' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:34: error: cannot find 'ECHO' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:41: error: cannot find 'ICANON' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:50: error: cannot find 'ISIG' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:9: error: cannot find 'tcsetattr' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:19: error: cannot find 'STDIN_FILENO' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:33: error: cannot find 'TCSANOW' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:17: error: cannot find 'tcsetattr' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:27: error: cannot find 'STDIN_FILENO' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:41: error: cannot find 'TCSANOW' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:21: error: cannot find 'read' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'read' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:26: error: cannot find 'STDIN_FILENO' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'STDIN_FILENO' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:26: error: cannot find 'isatty' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'isatty' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:33: error: cannot find 'STDIN_FILENO' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'STDIN_FILENO' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:27: error: cannot find 'isatty' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'isatty' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:34: error: cannot find 'STDOUT_FILENO' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'STDOUT_FILENO' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:41:20: error: cannot find 'winsize' in scope
39 | guard stdoutIsTTY else { return nil }
40 |
41 | var size = winsize()
| `- error: cannot find 'winsize' in scope
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
43 | guard result == 0, size.ws_col > 0 else { return nil }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:22: error: cannot find 'ioctl' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'ioctl' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:28: error: cannot find 'STDOUT_FILENO' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'STDOUT_FILENO' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:48: error: cannot find 'TIOCGWINSZ' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'TIOCGWINSZ' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
[20/28] Compiling Interaction TerminalKey.swift
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:22:24: error: cannot find 'termios' in scope
20 | /// Puts the terminal into raw input mode for the duration of the body.
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
| `- error: cannot find 'termios' in scope
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
24 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:15: error: cannot find 'tcgetattr' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:23:25: error: cannot find 'STDIN_FILENO' in scope
21 | public func withRawInput<Result>(_ body: () throws -> Result) rethrows -> Result {
22 | var original = termios()
23 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
24 | return try body()
25 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:25: error: cannot find 'tcflag_t' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:34: error: cannot find 'ECHO' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:41: error: cannot find 'ICANON' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:28:50: error: cannot find 'ISIG' in scope
26 |
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:9: error: cannot find 'tcsetattr' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:19: error: cannot find 'STDIN_FILENO' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:29:33: error: cannot find 'TCSANOW' in scope
27 | var raw = original
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
31 | return try body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:17: error: cannot find 'tcsetattr' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:27: error: cannot find 'STDIN_FILENO' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:30:41: error: cannot find 'TCSANOW' in scope
28 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
29 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
30 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
31 | return try body()
32 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:36:24: error: cannot find 'termios' in scope
34 | /// Puts the terminal into raw input mode for the duration of the asynchronous body.
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
| `- error: cannot find 'termios' in scope
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
38 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:15: error: cannot find 'tcgetattr' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'tcgetattr' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:37:25: error: cannot find 'STDIN_FILENO' in scope
35 | public func withRawInput<Result>(_ body: () async throws -> Result) async rethrows -> Result {
36 | var original = termios()
37 | guard tcgetattr(STDIN_FILENO, &original) == 0 else {
| `- error: cannot find 'STDIN_FILENO' in scope
38 | return try await body()
39 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:25: error: cannot find 'tcflag_t' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'tcflag_t' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:34: error: cannot find 'ECHO' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ECHO' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:41: error: cannot find 'ICANON' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ICANON' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:42:50: error: cannot find 'ISIG' in scope
40 |
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
| `- error: cannot find 'ISIG' in scope
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:9: error: cannot find 'tcsetattr' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'tcsetattr' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:19: error: cannot find 'STDIN_FILENO' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'STDIN_FILENO' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:43:33: error: cannot find 'TCSANOW' in scope
41 | var raw = original
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
| `- error: cannot find 'TCSANOW' in scope
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
45 | return try await body()
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:17: error: cannot find 'tcsetattr' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'tcsetattr' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:27: error: cannot find 'STDIN_FILENO' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'STDIN_FILENO' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:44:41: error: cannot find 'TCSANOW' in scope
42 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | ISIG)
43 | tcsetattr(STDIN_FILENO, TCSANOW, &raw)
44 | defer { tcsetattr(STDIN_FILENO, TCSANOW, &original) }
| `- error: cannot find 'TCSANOW' in scope
45 | return try await body()
46 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:21: error: cannot find 'read' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'read' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/StandardKeyInput.swift:50:26: error: cannot find 'STDIN_FILENO' in scope
48 | private func readByte() -> UInt8? {
49 | var byte: UInt8 = 0
50 | let count = read(STDIN_FILENO, &byte, 1)
| `- error: cannot find 'STDIN_FILENO' in scope
51 | return count == 1 ? byte : nil
52 | }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:26: error: cannot find 'isatty' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'isatty' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:21:33: error: cannot find 'STDIN_FILENO' in scope
19 | /// Capabilities detected from the standard streams and environment.
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
| `- error: cannot find 'STDIN_FILENO' in scope
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
23 | let isDumb = environment["TERM"] == "dumb"
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:27: error: cannot find 'isatty' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'isatty' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:22:34: error: cannot find 'STDOUT_FILENO' in scope
20 | public static func detect(environment: [String: String] = ProcessInfo.processInfo.environment) -> TerminalCapabilities {
21 | let stdinIsTTY = isatty(STDIN_FILENO) == 1
22 | let stdoutIsTTY = isatty(STDOUT_FILENO) == 1
| `- error: cannot find 'STDOUT_FILENO' in scope
23 | let isDumb = environment["TERM"] == "dumb"
24 | let noColor = environment["NO_COLOR"].map { !$0.isEmpty } ?? false
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:41:20: error: cannot find 'winsize' in scope
39 | guard stdoutIsTTY else { return nil }
40 |
41 | var size = winsize()
| `- error: cannot find 'winsize' in scope
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
43 | guard result == 0, size.ws_col > 0 else { return nil }
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:22: error: cannot find 'ioctl' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'ioctl' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:28: error: cannot find 'STDOUT_FILENO' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'STDOUT_FILENO' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
/host/spi-builder-workspace/Sources/Interaction/Input/TerminalCapabilities.swift:42:48: error: cannot find 'TIOCGWINSZ' in scope
40 |
41 | var size = winsize()
42 | let result = ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &size)
| `- error: cannot find 'TIOCGWINSZ' in scope
43 | guard result == 0, size.ws_col > 0 else { return nil }
44 | return Int(size.ws_col)
[21/28] Compiling Interaction Terminal.swift
[22/28] Compiling Interaction Validation.swift
[23/28] Compiling Interaction TextPromptLoop.swift
[24/28] Compiling Interaction ChoiceOption.swift
[25/28] Compiling Interaction MultipleSelectionState.swift
[26/28] Compiling Interaction StyledTextRenderer.swift
[27/28] Compiling Interaction Table.swift
[28/28] Compiling Interaction Terminal+LineMode.swift
BUILD FAILURE 6.3 android