The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Playwright, reference v0.1.1 (27fd48), with Swift 6.4 for tvOS using Xcode 27.0 on 24 Sep 2026 18:38:26 UTC.

Build Command

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

Build Log

214 | 		return result["value"] as? T ?? fallback
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:225:10: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
217 | 	// MARK: - Actions (internal, called by Locator)
218 |
219 | 	private func clickAction(
    |               `- note: add '@available' attribute to enclosing instance method
220 | 		_ method: String,
221 | 		_ selector: String,
    :
223 | 		button: MouseButton? = nil,
224 | 		clickCount: Int? = nil,
225 | 		delay: Duration? = nil,
    |          `- error: 'Duration' is only available in tvOS 16.0 or newer
226 | 		force: Bool? = nil,
227 | 		modifiers: [KeyboardModifier]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:229:12: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
217 | 	// MARK: - Actions (internal, called by Locator)
218 |
219 | 	private func clickAction(
    |               `- note: add '@available' attribute to enclosing instance method
220 | 		_ method: String,
221 | 		_ selector: String,
    :
227 | 		modifiers: [KeyboardModifier]? = nil,
228 | 		position: Position? = nil,
229 | 		timeout: Duration? = nil,
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
230 | 		trial: Bool? = nil
231 | 	) async throws {
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:247:10: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
242 | 	}
243 |
244 | 	func click(
    |       `- note: add '@available' attribute to enclosing instance method
245 | 		_ selector: String, strict: Bool = true,
246 | 		button: MouseButton? = nil, clickCount: Int? = nil,
247 | 		delay: Duration? = nil, force: Bool? = nil,
    |          `- error: 'Duration' is only available in tvOS 16.0 or newer
248 | 		modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | 		timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:249:12: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
242 | 	}
243 |
244 | 	func click(
    |       `- note: add '@available' attribute to enclosing instance method
245 | 		_ selector: String, strict: Bool = true,
246 | 		button: MouseButton? = nil, clickCount: Int? = nil,
247 | 		delay: Duration? = nil, force: Bool? = nil,
248 | 		modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
249 | 		timeout: Duration? = nil, trial: Bool? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
250 | 	) async throws {
251 | 		try await clickAction("click", selector, strict: strict, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:256:38: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
252 | 	}
253 |
254 | 	func dblclick(
    |       `- note: add '@available' attribute to enclosing instance method
255 | 		_ selector: String, strict: Bool = true,
256 | 		button: MouseButton? = nil, delay: Duration? = nil,
    |                                      `- error: 'Duration' is only available in tvOS 16.0 or newer
257 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | 		timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:258:12: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
252 | 	}
253 |
254 | 	func dblclick(
    |       `- note: add '@available' attribute to enclosing instance method
255 | 		_ selector: String, strict: Bool = true,
256 | 		button: MouseButton? = nil, delay: Duration? = nil,
257 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
258 | 		timeout: Duration? = nil, trial: Bool? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
259 | 	) async throws {
260 | 		try await clickAction("dblclick", selector, strict: strict, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:263:97: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
261 | 	}
262 |
263 | 	func fill(_ selector: String, value: String, strict: Bool = true, force: Bool? = nil, timeout: Duration? = nil) async throws {
    |       |                                                                                         `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
264 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
265 | 		params["value"] = value
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:271:76: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
269 | 	}
270 |
271 | 	func press(_ selector: String, key: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                                    `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
272 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
273 | 		params["key"] = key
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:278:89: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
276 | 	}
277 |
278 | 	func pressSequentially(_ selector: String, text: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                                                 `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
279 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
280 | 		params["text"] = text
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:285:63: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
283 | 	}
284 |
285 | 	func check(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                       `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
286 | 		try await selectorAction("check", selector, strict: strict, timeout: timeout)
287 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:289:65: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
287 | 	}
288 |
289 | 	func uncheck(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                         `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
290 | 		try await selectorAction("uncheck", selector, strict: strict, timeout: timeout)
291 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:293:83: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
291 | 	}
292 |
293 | 	func setChecked(_ selector: String, checked: Bool, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
294 | 		if checked { try await check(selector, strict: strict, timeout: timeout) }
295 | 		else { try await uncheck(selector, strict: strict, timeout: timeout) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:298:63: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
296 | 	}
297 |
298 | 	func hover(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                       `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
299 | 		try await selectorAction("hover", selector, strict: strict, timeout: timeout)
300 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:302:63: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
300 | 	}
301 |
302 | 	func focus(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                       `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
303 | 		try await selectorAction("focus", selector, strict: strict, timeout: timeout)
304 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:306:62: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
304 | 	}
305 |
306 | 	func blur(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                      `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
307 | 		try await selectorAction("blur", selector, strict: strict, timeout: timeout)
308 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:310:88: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
308 | 	}
309 |
310 | 	func selectOption(_ selector: String, values: [String], strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                                                `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
311 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
312 | 		params["options"] = values.map { ["valueOrLabel": $0] }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:317:61: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
315 | 	}
316 |
317 | 	func tap(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws {
    |       |                                                     `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
318 | 		try await selectorAction("tap", selector, strict: strict, timeout: timeout)
319 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:323:69: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
321 | 	// MARK: - Queries (internal, called by Locator)
322 |
323 | 	func textContent(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
    |       |                                                             `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
324 | 		let result = try await send("textContent", params: selectorParams(selector, strict: strict, timeout: timeout))
325 | 		return result["value"] as? String
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:328:67: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
326 | 	}
327 |
328 | 	func innerText(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
    |       |                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
329 | 		try await queryValue("innerText", selector, strict: strict, timeout: timeout, fallback: "")
330 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:332:67: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
330 | 	}
331 |
332 | 	func innerHTML(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
    |       |                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
333 | 		try await queryValue("innerHTML", selector, strict: strict, timeout: timeout, fallback: "")
334 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:336:84: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
334 | 	}
335 |
336 | 	func getAttribute(_ selector: String, name: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String? {
    |       |                                                                            `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
337 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
338 | 		params["name"] = name
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:344:68: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
342 | 	}
343 |
344 | 	func inputValue(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> String {
    |       |                                                            `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
345 | 		try await queryValue("inputValue", selector, strict: strict, timeout: timeout, fallback: "")
346 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:358:67: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
356 | 	}
357 |
358 | 	func isEnabled(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
    |       |                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
359 | 		try await queryValue("isEnabled", selector, strict: strict, timeout: timeout, fallback: false)
360 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:362:67: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
360 | 	}
361 |
362 | 	func isChecked(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
    |       |                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
363 | 		try await queryValue("isChecked", selector, strict: strict, timeout: timeout, fallback: false)
364 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:366:68: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
364 | 	}
365 |
366 | 	func isEditable(_ selector: String, strict: Bool = true, timeout: Duration? = nil) async throws -> Bool {
    |       |                                                            `- error: 'Duration' is only available in tvOS 16.0 or newer
    |       `- note: add '@available' attribute to enclosing instance method
367 | 		try await queryValue("isEditable", selector, strict: strict, timeout: timeout, fallback: false)
368 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:373:121: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
371 | 	///
372 | 	/// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-selector
373 | 	public func waitForSelector(_ selector: String, state: WaitForSelectorState = .visible, strict: Bool = false, timeout: Duration? = nil) async throws -> ElementHandle? {
    |              |                                                                                                          `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
374 | 		var params = selectorParams(selector, strict: strict, timeout: timeout)
375 | 		params["state"] = state.rawValue
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:401:40: error: 'Duration' is only available in tvOS 16.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
399 | 	///
400 | 	/// See: https://playwright.dev/docs/api/class-frame#frame-wait-for-timeout
401 | 	public func waitForTimeout(_ timeout: Duration) async throws {
    |              |                         `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
402 | 		_ = try await send("waitForTimeout", params: ["waitTimeout": timeout.milliseconds])
403 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:25:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 22 |
 23 | 	/// The frame's name attribute.
 24 | 	public var name: String {
    |             `- note: add '@available' attribute to enclosing property
 25 | 		state.withLock { $0.name }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 26 | 	}
 27 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:30:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 27 |
 28 | 	/// The current URL of the frame.
 29 | 	public var url: String {
    |             `- note: add '@available' attribute to enclosing property
 30 | 		state.withLock { $0.url }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 31 | 	}
 32 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:35:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 32 |
 33 | 	/// The current load states of the frame.
 34 | 	var loadStates: Set<String> {
    |      `- note: add '@available' attribute to enclosing property
 35 | 		state.withLock { $0.loadStates }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 36 | 	}
 37 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:40:15: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 37 |
 38 | 	/// Back-reference to the owning page (set by Page after creation).
 39 | 	public internal(set) var page: Page? {
    |                           `- note: add '@available' attribute to enclosing property
 40 | 		get { state.withLock { $0.page } }
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
 41 | 		set { state.withLock { $0.page = newValue } }
 42 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:41:15: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 37 |
 38 | 	/// Back-reference to the owning page (set by Page after creation).
 39 | 	public internal(set) var page: Page? {
    |                           `- note: add '@available' attribute to enclosing property
 40 | 		get { state.withLock { $0.page } }
 41 | 		set { state.withLock { $0.page = newValue } }
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
 42 | 	}
 43 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:50:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 47 | 	///
 48 | 	/// See: https://playwright.dev/docs/api/class-frame#frame-parent-frame
 49 | 	public var parentFrame: Frame? {
    |             `- note: add '@available' attribute to enclosing property
 50 | 		state.withLock { $0.parentFrame }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 51 | 	}
 52 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:57:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 54 | 	///
 55 | 	/// See: https://playwright.dev/docs/api/class-frame#frame-child-frames
 56 | 	public var childFrames: [Frame] {
    |             `- note: add '@available' attribute to enclosing property
 57 | 		state.withLock { $0.childFrames }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 58 | 	}
 59 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:64:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 61 | 	///
 62 | 	/// See: https://playwright.dev/docs/api/class-frame#frame-is-detached
 63 | 	public var isDetached: Bool {
    |             `- note: add '@available' attribute to enclosing property
 64 | 		state.withLock { $0.isDetached }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 65 | 	}
 66 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:69:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 66 |
 67 | 	/// Marks this frame as detached (called when `frameDetached` event fires on the page).
 68 | 	func markDetached() {
    |       `- note: add '@available' attribute to enclosing instance method
 69 | 		state.withLock { $0.isDetached = true }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 70 | 	}
 71 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:74:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 71 |
 72 | 	/// Adds a child frame to this frame's child list.
 73 | 	func addChildFrame(_ frame: Frame) {
    |       `- note: add '@available' attribute to enclosing instance method
 74 | 		state.withLock { $0.childFrames.append(frame) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 75 | 	}
 76 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:79:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 76 |
 77 | 	/// Removes a child frame from this frame's child list.
 78 | 	func removeChildFrame(_ frame: Frame) {
    |       `- note: add '@available' attribute to enclosing instance method
 79 | 		state.withLock { $0.childFrames.removeAll { $0 === frame } }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 80 | 	}
 81 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:85:11: error: 'Mutex' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 80 | 	}
 81 |
 82 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 83 | 		let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
 84 |
 85 | 		state = Mutex(State(
    |           |- error: 'Mutex' is only available in tvOS 18.0 or newer
    |           `- note: add 'if #available' version check
 86 | 			url: initializer["url"] as? String ?? "",
 87 | 			name: initializer["name"] as? String ?? "",
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:85:11: error: 'init(_:)' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 80 | 	}
 81 |
 82 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 83 | 		let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
 84 |
 85 | 		state = Mutex(State(
    |           |- error: 'init(_:)' is only available in tvOS 18.0 or newer
    |           `- note: add 'if #available' version check
 86 | 			url: initializer["url"] as? String ?? "",
 87 | 			name: initializer["name"] as? String ?? "",
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:95:15: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 80 | 	}
 81 |
 82 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 83 | 		let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
 84 |
    :
 93 | 		on("navigated") { [weak self] params in
 94 | 			guard let self else { return }
 95 | 			self.state.withLock { state in
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
 96 | 				if let url = params["url"] as? String { state.url = url }
 97 | 				if let name = params["name"] as? String { state.name = name }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:106:26: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
 80 | 	}
 81 |
 82 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 83 | 		let initialLoadStates = (initializer["loadStates"] as? [String]).map(Set.init) ?? []
 84 |
    :
104 | 			let remove = params["remove"] as? String
105 |
106 | 			let page = self.state.withLock { state -> Page? in
    |                          |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                          `- note: add 'if #available' version check
107 | 				if let add { state.loadStates.insert(add) }
108 | 				if let remove { state.loadStates.remove(remove) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:130:9: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-frame
 10 | public final class Frame: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	private struct State: ~Copyable {
 12 | 		var url: String
    :
121 | 	/// Child iframes have a `parentFrame` GUID in their initializer. We resolve
122 | 	/// the parent here and register ourselves as a child of that parent.
123 | 	override func didCreate(resolve: (String) -> ChannelOwner?) {
    |                `- note: add '@available' attribute to enclosing instance method
124 | 		guard
125 | 			let parentRef = initializer["parentFrame"] as? [String: Any],
    :
128 | 		else { return }
129 |
130 | 		state.withLock { $0.parentFrame = parent }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
131 | 		parent.addChildFrame(self)
132 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift:481:9: error: 'withLock' is only available in tvOS 18.0 or newer
477 | }
478 |
479 | extension Frame: CustomStringConvertible {
    | `- note: add '@available' attribute to enclosing extension
480 | 	public var description: String {
    |             `- note: add '@available' attribute to enclosing property
481 | 		state.withLock { $0.name.isEmpty ? "Frame(\($0.url))" : "Frame(\($0.name))" }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
482 | 	}
483 | }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:21:42: error: 'Duration' is only available in tvOS 16.0 or newer
 6 | ///
 7 | /// See: https://playwright.dev/docs/api/class-keyboard
 8 | public final class Keyboard: Sendable {
   |                    `- note: add '@available' attribute to enclosing class
 9 | 	private let page: Page
10 |
   :
19 | 	///
20 | 	/// See: https://playwright.dev/docs/api/class-keyboard#keyboard-type
21 | 	public func type(_ text: String, delay: Duration? = nil) async throws {
   |              |                           `- error: 'Duration' is only available in tvOS 16.0 or newer
   |              `- note: add '@available' attribute to enclosing instance method
22 | 		var params: [String: Any] = ["text": text]
23 | 		if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift:34:42: error: 'Duration' is only available in tvOS 16.0 or newer
 6 | ///
 7 | /// See: https://playwright.dev/docs/api/class-keyboard
 8 | public final class Keyboard: Sendable {
   |                    `- note: add '@available' attribute to enclosing class
 9 | 	private let page: Page
10 |
   :
32 | 	///
33 | 	/// See: https://playwright.dev/docs/api/class-keyboard#keyboard-press
34 | 	public func press(_ key: String, delay: Duration? = nil) async throws {
   |              |                           `- error: 'Duration' is only available in tvOS 16.0 or newer
   |              `- note: add '@available' attribute to enclosing instance method
35 | 		var params: [String: Any] = ["key": key]
36 | 		if let delay { params["delay"] = delay.milliseconds }
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:172:62: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
169 | 	///
170 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | 	public func click(
    |              `- note: add '@available' attribute to enclosing instance method
172 | 		button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
    |                                                              `- error: 'Duration' is only available in tvOS 16.0 or newer
173 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | 		timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:174:12: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
169 | 	///
170 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-click
171 | 	public func click(
    |              `- note: add '@available' attribute to enclosing instance method
172 | 		button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil,
173 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
174 | 		timeout: Duration? = nil, trial: Bool? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
175 | 	) async throws {
176 | 		try await frame.click(selector, button: button, clickCount: clickCount, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:183:38: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
180 | 	///
181 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | 	public func dblclick(
    |              `- note: add '@available' attribute to enclosing instance method
183 | 		button: MouseButton? = nil, delay: Duration? = nil,
    |                                      `- error: 'Duration' is only available in tvOS 16.0 or newer
184 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | 		timeout: Duration? = nil, trial: Bool? = nil
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:185:12: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
180 | 	///
181 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-dblclick
182 | 	public func dblclick(
    |              `- note: add '@available' attribute to enclosing instance method
183 | 		button: MouseButton? = nil, delay: Duration? = nil,
184 | 		force: Bool? = nil, modifiers: [KeyboardModifier]? = nil, position: Position? = nil,
185 | 		timeout: Duration? = nil, trial: Bool? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
186 | 	) async throws {
187 | 		try await frame.dblclick(selector, button: button, delay: delay, force: force, modifiers: modifiers, position: position, timeout: timeout, trial: trial)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:193:65: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
191 | 	///
192 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-fill
193 | 	public func fill(_ value: String, force: Bool? = nil, timeout: Duration? = nil) async throws {
    |              |                                                  `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
194 | 		try await frame.fill(selector, value: value, force: force, timeout: timeout)
195 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:200:29: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
198 | 	///
199 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-clear
200 | 	public func clear(timeout: Duration? = nil) async throws {
    |              |              `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
201 | 		try await frame.fill(selector, value: "", timeout: timeout)
202 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:207:44: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
205 | 	///
206 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-press
207 | 	public func press(_ key: String, timeout: Duration? = nil) async throws {
    |              |                             `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
208 | 		try await frame.press(selector, key: key, timeout: timeout)
209 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:214:57: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
212 | 	///
213 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-press-sequentially
214 | 	public func pressSequentially(_ text: String, timeout: Duration? = nil) async throws {
    |              |                                          `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
215 | 		try await frame.pressSequentially(selector, text: text, timeout: timeout)
216 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:221:29: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
219 | 	///
220 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-check
221 | 	public func check(timeout: Duration? = nil) async throws {
    |              |              `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
222 | 		try await frame.check(selector, timeout: timeout)
223 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:228:31: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
226 | 	///
227 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-uncheck
228 | 	public func uncheck(timeout: Duration? = nil) async throws {
    |              |                `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
229 | 		try await frame.uncheck(selector, timeout: timeout)
230 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:235:51: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
233 | 	///
234 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-set-checked
235 | 	public func setChecked(_ checked: Bool, timeout: Duration? = nil) async throws {
    |              |                                    `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
236 | 		try await frame.setChecked(selector, checked: checked, timeout: timeout)
237 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:242:29: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
240 | 	///
241 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-hover
242 | 	public func hover(timeout: Duration? = nil) async throws {
    |              |              `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
243 | 		try await frame.hover(selector, timeout: timeout)
244 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:263:53: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
261 | 	///
262 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-select-option
263 | 	public func selectOption(_ value: String, timeout: Duration? = nil) async throws {
    |              |                                      `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
264 | 		try await frame.selectOption(selector, values: [value], timeout: timeout)
265 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:268:56: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
266 |
267 | 	/// Selects multiple options in a `<select>` element by value.
268 | 	public func selectOption(_ values: [String], timeout: Duration? = nil) async throws {
    |              |                                         `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
269 | 		try await frame.selectOption(selector, values: values, timeout: timeout)
270 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:275:27: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
273 | 	///
274 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-tap
275 | 	public func tap(timeout: Duration? = nil) async throws {
    |              |            `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
276 | 		try await frame.tap(selector, timeout: timeout)
277 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:284:35: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
282 | 	///
283 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-text-content
284 | 	public func textContent(timeout: Duration? = nil) async throws -> String? {
    |              |                    `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
285 | 		try await frame.textContent(selector, timeout: timeout)
286 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:291:33: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
289 | 	///
290 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-inner-text
291 | 	public func innerText(timeout: Duration? = nil) async throws -> String {
    |              |                  `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
292 | 		try await frame.innerText(selector, timeout: timeout)
293 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:298:33: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
296 | 	///
297 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-inner-html
298 | 	public func innerHTML(timeout: Duration? = nil) async throws -> String {
    |              |                  `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
299 | 		try await frame.innerHTML(selector, timeout: timeout)
300 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:305:52: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
303 | 	///
304 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-get-attribute
305 | 	public func getAttribute(_ name: String, timeout: Duration? = nil) async throws -> String? {
    |              |                                     `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
306 | 		try await frame.getAttribute(selector, name: name, timeout: timeout)
307 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:312:34: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
310 | 	///
311 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-input-value
312 | 	public func inputValue(timeout: Duration? = nil) async throws -> String {
    |              |                   `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
313 | 		try await frame.inputValue(selector, timeout: timeout)
314 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:334:74: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
332 | 	///
333 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
334 | 	public func evaluate<T>(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> T {
    |              |                                                           `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
335 | 		guard let result = try await evaluate(expression, arg: arg, timeout: timeout) as? T else {
336 | 			throw PlaywrightError.invalidArgument("Expected evaluate result of type \(T.self)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:355:71: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
353 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-evaluate
354 | 	@_disfavoredOverload
355 | 	public func evaluate(_ expression: String, arg: Any? = nil, timeout: Duration? = nil) async throws -> Any? {
    |              |                                                        `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
356 | 		guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
357 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:449:12: error: 'Duration' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
450 | 	) async throws -> Data {
451 | 		let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Frame.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Keyboard.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Locator.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile LocatorFactory.swift
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:38: error: '+' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
450 | 	) async throws -> Data {
451 | 		let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
    |                                      |- error: '+' is only available in tvOS 16.0 or newer
    |                                      `- note: add 'if #available' version check
452 | 		guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:18: error: 'ContinuousClock' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
450 | 	) async throws -> Data {
451 | 		let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
    |                  |- error: 'ContinuousClock' is only available in tvOS 16.0 or newer
    |                  `- note: add 'if #available' version check
452 | 		guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:451:34: error: 'now' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
450 | 	) async throws -> Data {
451 | 		let deadline = ContinuousClock.now + (timeout ?? defaultTimeout)
    |                                  |- error: 'now' is only available in tvOS 16.0 or newer
    |                                  `- note: add 'if #available' version check
452 | 		guard let handle = try await frame.waitForSelector(selector, state: .attached, strict: true, timeout: timeout) else {
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:19: error: conformance of 'Duration' to 'Comparable' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
    :
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | 		}
455 | 		let remaining = max(deadline - .now, .zero)
    |                   |- error: conformance of 'Duration' to 'Comparable' is only available in tvOS 16.0 or newer
    |                   `- note: add 'if #available' version check
456 |
457 | 		let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:32: error: '-' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
    :
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | 		}
455 | 		let remaining = max(deadline - .now, .zero)
    |                                |- error: '-' is only available in tvOS 16.0 or newer
    |                                `- note: add 'if #available' version check
456 |
457 | 		let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:35: error: 'now' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
    :
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | 		}
455 | 		let remaining = max(deadline - .now, .zero)
    |                                   |- error: 'now' is only available in tvOS 16.0 or newer
    |                                   `- note: add 'if #available' version check
456 |
457 | 		let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift:455:41: error: 'zero' is only available in tvOS 16.0 or newer
 19 | ///
 20 | /// See: https://playwright.dev/docs/api/class-locator
 21 | public struct Locator: LocatorFactory, Sendable {
    |               `- note: add '@available' attribute to enclosing struct
 22 | 	package let frame: Frame
 23 | 	package let selector: String
    :
445 | 	///
446 | 	/// See: https://playwright.dev/docs/api/class-locator#locator-screenshot
447 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
448 | 		type: ImageType? = nil, quality: Int? = nil, omitBackground: Bool? = nil,
449 | 		timeout: Duration? = nil, path: String? = nil
    :
453 | 			throw PlaywrightError.serverError("Element not found for selector: \(selector)")
454 | 		}
455 | 		let remaining = max(deadline - .now, .zero)
    |                                         |- error: 'zero' is only available in tvOS 16.0 or newer
    |                                         `- note: add 'if #available' version check
456 |
457 | 		let result = try await handle.screenshot(type: type, quality: quality, omitBackground: omitBackground, timeout: remaining, path: path)
SwiftCompile normal arm64 Compiling\ BrowserContext.swift,\ BrowserContextOptions.swift,\ BrowserType.swift,\ ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:21:22: error: 'Mutex' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 19 | 	}
 20 |
 21 | 	private let state = Mutex(State())
    |                      `- error: 'Mutex' is only available in tvOS 18.0 or newer
 22 |
 23 | 	/// The pages open in this context.
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:21:22: error: 'init(_:)' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 19 | 	}
 20 |
 21 | 	private let state = Mutex(State())
    |                      `- error: 'init(_:)' is only available in tvOS 18.0 or newer
 22 |
 23 | 	/// The pages open in this context.
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:25:9: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 22 |
 23 | 	/// The pages open in this context.
 24 | 	public var pages: [Page] {
    |             `- note: add '@available' attribute to enclosing property
 25 | 		state.withLock { $0.pages }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 26 | 	}
 27 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:35:9: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 32 | 	public let browser: Browser?
 33 |
 34 | 	func setOwned() {
    |       `- note: add '@available' attribute to enclosing instance method
 35 | 		state.withLock { $0.isOwnedContext = true }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 36 | 	}
 37 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:46:15: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 36 | 	}
 37 |
 38 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 39 | 		browser = parent as? Browser
 40 | 		super.init(connection: connection, parent: parent, type: type, guid: guid, initializer: initializer)
    :
 44 | 		on("close") { [weak self] _ in
 45 | 			guard let self else { return }
 46 | 			self.state.withLock { $0.consoleHandlers.removeAll() }
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
 47 | 			self.browser?.removeContext(self)
 48 | 		}
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:52:15: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 36 | 	}
 37 |
 38 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 39 | 		browser = parent as? Browser
 40 | 		super.init(connection: connection, parent: parent, type: type, guid: guid, initializer: initializer)
    :
 50 | 		on("page") { [weak self] params in
 51 | 			guard let self, let page = params["page"] as? Page else { return }
 52 | 			self.state.withLock { $0.pages.append(page) }
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
 53 | 		}
 54 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:77:24: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 74 | 	///
 75 | 	/// See: https://playwright.dev/docs/api/class-browsercontext#browser-context-new-page
 76 | 	public func newPage() async throws -> Page {
    |              `- note: add '@available' attribute to enclosing instance method
 77 | 		let hasOwner = state.withLock { $0.isOwnedContext }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
 78 | 		if hasOwner {
 79 | 			throw PlaywrightError.serverError(
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:102:23: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
 99 | 	///
100 | 	/// See: https://playwright.dev/docs/api/class-browsercontext#browser-context-event-console
101 | 	public func onConsole(_ handler: @escaping @Sendable (ConsoleMessage) -> Void) async {
    |              `- note: add '@available' attribute to enclosing instance method
102 | 		let isFirst = state.withLock { state in
    |                       |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                       `- note: add 'if #available' version check
103 | 			let wasEmpty = state.consoleHandlers.isEmpty
104 | 			state.consoleHandlers.append(handler)
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:113:24: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
110 |
111 | 	/// Called when a console event is received in this context.
112 | 	func dispatchConsole(_ message: ConsoleMessage) {
    |       `- note: add '@available' attribute to enclosing instance method
113 | 		let handlers = state.withLock { $0.consoleHandlers }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
114 |
115 | 		for handler in handlers {
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift:122:9: error: 'withLock' is only available in tvOS 18.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsercontext
 14 | public final class BrowserContext: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	private struct State: ~Copyable {
 16 | 		var pages: [Page] = []
    :
119 |
120 | 	/// Removes a page from this context's page list.
121 | 	func removePage(_ page: Page) {
    |       `- note: add '@available' attribute to enclosing instance method
122 | 		state.withLock { $0.pages.removeByIdentity(page) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
123 | 	}
124 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:51:12: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 45 | 	///
 46 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch
 47 | 	public func launch(
    |              `- note: add '@available' attribute to enclosing instance method
 48 | 		headless: Bool? = nil,
 49 | 		channel: String? = nil,
 50 | 		args: [String]? = nil,
 51 | 		timeout: Duration? = nil,
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
 52 | 		executablePath: String? = nil,
 53 | 		env: [String: String]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:54:11: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 45 | 	///
 46 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch
 47 | 	public func launch(
    |              `- note: add '@available' attribute to enclosing instance method
 48 | 		headless: Bool? = nil,
 49 | 		channel: String? = nil,
    :
 52 | 		executablePath: String? = nil,
 53 | 		env: [String: String]? = nil,
 54 | 		slowMo: Duration? = nil
    |           `- error: 'Duration' is only available in tvOS 16.0 or newer
 55 | 	) async throws -> Browser {
 56 | 		var params: [String: Any] = [
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:98:11: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 93 | 	///
 94 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp
 95 | 	public func connectOverCDP(
    |              `- note: add '@available' attribute to enclosing instance method
 96 | 		_ endpointURL: String,
 97 | 		headers: [String: String]? = nil,
 98 | 		slowMo: Duration? = nil,
    |           `- error: 'Duration' is only available in tvOS 16.0 or newer
 99 | 		timeout: Duration? = nil
100 | 	) async throws -> Browser {
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:99:12: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 93 | 	///
 94 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp
 95 | 	public func connectOverCDP(
    |              `- note: add '@available' attribute to enclosing instance method
 96 | 		_ endpointURL: String,
 97 | 		headers: [String: String]? = nil,
 98 | 		slowMo: Duration? = nil,
 99 | 		timeout: Duration? = nil
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
100 | 	) async throws -> Browser {
101 | 		guard name == "chromium" else {
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:152:12: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
145 | 	///
146 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
147 | 	public func launchPersistentContext(
    |              `- note: add '@available' attribute to enclosing instance method
148 | 		userDataDir: String,
149 | 		headless: Bool? = nil,
150 | 		channel: String? = nil,
151 | 		args: [String]? = nil,
152 | 		timeout: Duration? = nil,
    |            `- error: 'Duration' is only available in tvOS 16.0 or newer
153 | 		executablePath: String? = nil,
154 | 		env: [String: String]? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:155:11: error: 'Duration' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
145 | 	///
146 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
147 | 	public func launchPersistentContext(
    |              `- note: add '@available' attribute to enclosing instance method
148 | 		userDataDir: String,
149 | 		headless: Bool? = nil,
    :
153 | 		executablePath: String? = nil,
154 | 		env: [String: String]? = nil,
155 | 		slowMo: Duration? = nil,
    |           `- error: 'Duration' is only available in tvOS 16.0 or newer
156 | 		acceptDownloads: Bool? = nil,
157 | 		locale: String? = nil,
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:57:28: error: 'seconds' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 45 | 	///
 46 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch
 47 | 	public func launch(
    |              `- note: add '@available' attribute to enclosing instance method
 48 | 		headless: Bool? = nil,
 49 | 		channel: String? = nil,
    :
 55 | 	) async throws -> Browser {
 56 | 		var params: [String: Any] = [
 57 | 			"timeout": (timeout ?? .seconds(180)).milliseconds,
    |                            |- error: 'seconds' is only available in tvOS 16.0 or newer
    |                            `- note: add 'if #available' version check
 58 | 		]
 59 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:107:28: error: 'seconds' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
 93 | 	///
 94 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-connect-over-cdp
 95 | 	public func connectOverCDP(
    |              `- note: add '@available' attribute to enclosing instance method
 96 | 		_ endpointURL: String,
 97 | 		headers: [String: String]? = nil,
    :
105 | 		var params: [String: Any] = [
106 | 			"endpointURL": endpointURL,
107 | 			"timeout": (timeout ?? .seconds(30)).milliseconds,
    |                            |- error: 'seconds' is only available in tvOS 16.0 or newer
    |                            `- note: add 'if #available' version check
108 | 		]
109 |
/Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift:163:28: error: 'seconds' is only available in tvOS 16.0 or newer
 12 | ///
 13 | /// See: https://playwright.dev/docs/api/class-browsertype
 14 | public final class BrowserType: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 15 | 	/// The browser engine name: `"chromium"`, `"firefox"`, or `"webkit"`.
 16 | 	public let name: String
    :
145 | 	///
146 | 	/// See: https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context
147 | 	public func launchPersistentContext(
    |              `- note: add '@available' attribute to enclosing instance method
148 | 		userDataDir: String,
149 | 		headless: Bool? = nil,
    :
161 | 			"userDataDir": userDataDir,
162 | 			"sdkLanguage": Driver.sdkLanguage,
163 | 			"timeout": (timeout ?? .seconds(180)).milliseconds,
    |                            |- error: 'seconds' is only available in tvOS 16.0 or newer
    |                            `- note: add 'if #available' version check
164 | 		]
165 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile BrowserContext.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile BrowserContextOptions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile BrowserType.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ConsoleMessage.swift
SwiftCompile normal arm64 Compiling\ Mouse.swift,\ NavigationOptions.swift,\ Page.swift,\ Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift:18:101: error: 'Duration' is only available in tvOS 16.0 or newer
 6 | ///
 7 | /// See: https://playwright.dev/docs/api/class-mouse
 8 | public final class Mouse: Sendable {
   |                    `- note: add '@available' attribute to enclosing class
 9 | 	private let page: Page
10 |
   :
16 | 	///
17 | 	/// See: https://playwright.dev/docs/api/class-mouse#mouse-click
18 | 	public func click(x: Double, y: Double, button: MouseButton? = nil, clickCount: Int? = nil, delay: Duration? = nil) async throws {
   |              |                                                                                      `- error: 'Duration' is only available in tvOS 16.0 or newer
   |              `- note: add '@available' attribute to enclosing instance method
19 | 		var params: [String: Any] = ["x": x, "y": y]
20 | 		if let button { params["button"] = button.rawValue }
/Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift:30:80: error: 'Duration' is only available in tvOS 16.0 or newer
 6 | ///
 7 | /// See: https://playwright.dev/docs/api/class-mouse
 8 | public final class Mouse: Sendable {
   |                    `- note: add '@available' attribute to enclosing class
 9 | 	private let page: Page
10 |
   :
28 | 	///
29 | 	/// See: https://playwright.dev/docs/api/class-mouse#mouse-dblclick
30 | 	public func dblclick(x: Double, y: Double, button: MouseButton? = nil, delay: Duration? = nil) async throws {
   |              |                                                                 `- error: 'Duration' is only available in tvOS 16.0 or newer
   |              `- note: add '@available' attribute to enclosing instance method
31 | 		try await click(x: x, y: y, button: button, clickCount: 2, delay: delay)
32 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:51:22: error: 'Mutex' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 49 | 	}
 50 |
 51 | 	private let state = Mutex(State())
    |                      `- error: 'Mutex' is only available in tvOS 18.0 or newer
 52 |
 53 | 	/// The current URL of the page (delegates to main frame).
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:51:22: error: 'init(_:)' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 49 | 	}
 50 |
 51 | 	private let state = Mutex(State())
    |                      `- error: 'init(_:)' is only available in tvOS 18.0 or newer
 52 |
 53 | 	/// The current URL of the page (delegates to main frame).
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:189:43: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
187 | 	/// See: https://playwright.dev/docs/api/class-page#page-goto
188 | 	@discardableResult
189 | 	public func goto(_ url: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil, referer: String? = nil) async throws -> Response? {
    |              |                            `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
190 | 		try await mainFrame.goto(url, timeout: timeout, waitUntil: waitUntil, referer: referer)
191 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:200:30: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
198 | 	///
199 | 	/// See: https://playwright.dev/docs/api/class-page#page-reload
200 | 	public func reload(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
    |              |               `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
201 | 		try await navigateWithResponse("reload", timeout: timeout, waitUntil: waitUntil)
202 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:211:30: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
209 | 	///
210 | 	/// See: https://playwright.dev/docs/api/class-page#page-go-back
211 | 	public func goBack(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
    |              |               `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
212 | 		try await navigateWithResponse("goBack", timeout: timeout, waitUntil: waitUntil)
213 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:222:33: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
220 | 	///
221 | 	/// See: https://playwright.dev/docs/api/class-page#page-go-forward
222 | 	public func goForward(timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
    |              |                  `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
223 | 		try await navigateWithResponse("goForward", timeout: timeout, waitUntil: waitUntil)
224 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:226:63: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
224 | 	}
225 |
226 | 	private func navigateWithResponse(_ method: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws -> Response? {
    |               |                                               `- error: 'Duration' is only available in tvOS 16.0 or newer
    |               `- note: add '@available' attribute to enclosing instance method
227 | 		var params: [String: Any] = ["timeout": timeoutMs(timeout)]
228 | 		if let waitUntil { params["waitUntil"] = waitUntil.rawValue }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:254:50: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
252 | 	///
253 | 	/// See: https://playwright.dev/docs/api/class-page#page-set-content
254 | 	public func setContent(_ html: String, timeout: Duration? = nil, waitUntil: WaitUntilState? = nil) async throws {
    |              |                                   `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
255 | 		try await mainFrame.setContent(html, timeout: timeout, waitUntil: waitUntil)
256 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:508:121: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
506 | 	/// See: https://playwright.dev/docs/api/class-page#page-wait-for-selector
507 | 	@discardableResult
508 | 	public func waitForSelector(_ selector: String, state: WaitForSelectorState = .visible, strict: Bool = false, timeout: Duration? = nil) async throws -> ElementHandle? {
    |              |                                                                                                          `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
509 | 		try await mainFrame.waitForSelector(selector, state: state, strict: strict, timeout: timeout)
510 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:515:40: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
513 | 	///
514 | 	/// See: https://playwright.dev/docs/api/class-page#page-wait-for-timeout
515 | 	public func waitForTimeout(_ timeout: Duration) async throws {
    |              |                         `- error: 'Duration' is only available in tvOS 16.0 or newer
    |              `- note: add '@available' attribute to enclosing instance method
516 | 		try await mainFrame.waitForTimeout(timeout)
517 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:569:41: error: 'Duration' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
565 | 	///
566 | 	/// See: https://playwright.dev/docs/api/class-page#page-screenshot
567 | 	public func screenshot(
    |              `- note: add '@available' attribute to enclosing instance method
568 | 		fullPage: Bool = false, type: ImageType? = nil, quality: Int? = nil,
569 | 		omitBackground: Bool? = nil, timeout: Duration? = nil, path: String? = nil
    |                                         `- error: 'Duration' is only available in tvOS 16.0 or newer
570 | 	) async throws -> Data {
571 | 		var params = try screenshotParams(type: type, quality: quality, omitBackground: omitBackground, timeout: timeout, path: path)
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:58:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 55 |
 56 | 	/// Whether the page has been closed.
 57 | 	public var isClosed: Bool {
    |             `- note: add '@available' attribute to enclosing property
 58 | 		state.withLock { $0.isClosed }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 59 | 	}
 60 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:65:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 62 | 	///
 63 | 	/// See: https://playwright.dev/docs/api/class-page#page-viewport-size
 64 | 	public var viewportSize: ViewportSize? {
    |             `- note: add '@available' attribute to enclosing property
 65 | 		state.withLock { $0.viewportSize }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 66 | 	}
 67 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:87:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 84 | 	}
 85 |
 86 | 	func setOwnedContext(_ context: BrowserContext) {
    |       `- note: add '@available' attribute to enclosing instance method
 87 | 		state.withLock { $0.ownedContext = context }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 88 | 	}
 89 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:111:10: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 88 | 	}
 89 |
 90 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 91 | 		// The parent in the object tree is always the BrowserContext.
 92 | 		// The main frame is already created and referenced by GUID in the initializer.
    :
109 | 		// Parse viewport size from initializer (nil when noViewport is set)
110 | 		if let viewportDict = initializer["viewportSize"] as? [String: Any], let width = viewportDict["width"] as? Int, let height = viewportDict["height"] as? Int {
111 | 			state.withLock { $0.viewportSize = ViewportSize(width: width, height: height) }
    |          |- error: 'withLock' is only available in tvOS 18.0 or newer
    |          `- note: add 'if #available' version check
112 | 		}
113 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:131:15: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
 88 | 	}
 89 |
 90 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 91 | 		// The parent in the object tree is always the BrowserContext.
 92 | 		// The main frame is already created and referenced by GUID in the initializer.
    :
129 | 		on("close") { [weak self] _ in
130 | 			guard let self else { return }
131 | 			self.state.withLock {
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
132 | 				$0.isClosed = true
133 | 				$0.routeHandlers.removeAll()
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:273:23: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
270 | 	///
271 | 	/// See: https://playwright.dev/docs/api/class-page#page-event-dialog
272 | 	public func onDialog(_ handler: @escaping @Sendable (Dialog) async -> Void) async {
    |              `- note: add '@available' attribute to enclosing instance method
273 | 		let isFirst = state.withLock { state in
    |                       |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                       `- note: add 'if #available' version check
274 | 			let wasEmpty = state.dialogHandlers.isEmpty
275 | 			state.dialogHandlers.append(handler)
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:284:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
281 |
282 | 	/// Called by BrowserContext when a dialog event is received for this page.
283 | 	func dispatchDialog(_ dialog: Dialog) {
    |       `- note: add '@available' attribute to enclosing instance method
284 | 		let handlers = state.withLock { $0.dialogHandlers }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
285 | 		if handlers.isEmpty {
286 | 			// Auto-dismiss: accept for beforeunload, dismiss for others
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:316:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
313 | 	///
314 | 	/// See: https://playwright.dev/docs/api/class-page#page-event-download
315 | 	public func onDownload(_ handler: @escaping @Sendable (Download) async -> Void) {
    |              `- note: add '@available' attribute to enclosing instance method
316 | 		state.withLock { $0.downloadHandlers.append(handler) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
317 | 	}
318 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:321:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
318 |
319 | 	/// Called when a download event is received for this page.
320 | 	func dispatchDownload(_ download: Download) {
    |       `- note: add '@available' attribute to enclosing instance method
321 | 		let handlers = state.withLock { $0.downloadHandlers }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
322 | 		for handler in handlers {
323 | 			Task<Void, Never> { await handler(download) }
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:339:23: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
336 | 	///
337 | 	/// See: https://playwright.dev/docs/api/class-page#page-event-console
338 | 	public func onConsole(_ handler: @escaping @Sendable (ConsoleMessage) -> Void) async {
    |              `- note: add '@available' attribute to enclosing instance method
339 | 		let isFirst = state.withLock { state in
    |                       |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                       `- note: add 'if #available' version check
340 | 			let wasEmpty = state.consoleHandlers.isEmpty
341 | 			state.consoleHandlers.append(handler)
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:350:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
347 |
348 | 	/// Called when a console event is received for this page.
349 | 	func dispatchConsole(_ message: ConsoleMessage) {
    |       `- note: add '@available' attribute to enclosing instance method
350 | 		let handlers = state.withLock { $0.consoleHandlers }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
351 |
352 | 		for handler in handlers {
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:370:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
366 | 	///
367 | 	/// See: https://playwright.dev/docs/api/class-page#page-route
368 | 	public func route(_ url: String, handler: @escaping @Sendable (Route) async throws -> Void) async throws {
    |              `- note: add '@available' attribute to enclosing instance method
369 | 		let regex = try NSRegularExpression(pattern: Self.globToRegex(url))
370 | 		state.withLock { $0.routeHandlers.append(RouteHandler(pattern: url, regex: regex, handler: handler)) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
371 | 		try await updateInterceptionPatterns()
372 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:378:9: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
375 | 	///
376 | 	/// See: https://playwright.dev/docs/api/class-page#page-unroute
377 | 	public func unroute(_ url: String) async throws {
    |              `- note: add '@available' attribute to enclosing instance method
378 | 		state.withLock { $0.routeHandlers.removeAll { $0.pattern == url } }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
379 | 		try await updateInterceptionPatterns()
380 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:383:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
380 | 	}
381 |
382 | 	private func updateInterceptionPatterns() async throws {
    |               `- note: add '@available' attribute to enclosing instance method
383 | 		let patterns = state.withLock { $0.routeHandlers.map { ["glob": $0.pattern] } }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
384 | 		_ = try await send("setNetworkInterceptionPatterns", params: ["patterns": patterns])
385 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:389:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
386 |
387 | 	/// Called when a route event is received for this page.
388 | 	func dispatchRoute(_ route: Route) {
    |       `- note: add '@available' attribute to enclosing instance method
389 | 		let handlers = state.withLock { $0.routeHandlers }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
390 | 		let url = route.request?.url ?? ""
391 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift:587:24: error: 'withLock' is only available in tvOS 18.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-page
 13 | public final class Page: ChannelOwner, LocatorFactory, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 14 | 	/// The main frame of the page.
 15 | 	package let mainFrame: Frame
    :
584 | 	///
585 | 	/// See: https://playwright.dev/docs/api/class-page#page-close
586 | 	public func close() async throws {
    |              `- note: add '@available' attribute to enclosing instance method
587 | 		let ownedCtx = state.withLock { $0.ownedContext }
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
588 |
589 | 		if let ownedCtx { try await ownedCtx.close() }
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Mouse.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile NavigationOptions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Page.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Request.swift
SwiftCompile normal arm64 Compiling\ Error.swift,\ Array+RemoveByIdentity.swift,\ Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift:3:11: error: 'Duration' is only available in tvOS 16.0 or newer
 1 | import Foundation
 2 |
 3 | extension Duration {
   | |         `- error: 'Duration' is only available in tvOS 16.0 or newer
   | `- note: add '@available' attribute to enclosing extension
 4 | 	/// The total number of milliseconds represented by this duration, as a `Double`.
 5 | 	package var milliseconds: Double {
/Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift:6:32: error: 'components' is only available in tvOS 16.0 or newer
 1 | import Foundation
 2 |
 3 | extension Duration {
   | `- note: add '@available' attribute to enclosing extension
 4 | 	/// The total number of milliseconds represented by this duration, as a `Double`.
 5 | 	package var milliseconds: Double {
   |              `- note: add '@available' attribute to enclosing property
 6 | 		let (seconds, attoseconds) = components
   |                                |- error: 'components' is only available in tvOS 16.0 or newer
   |                                `- note: add 'if #available' version check
 7 | 		return Double(seconds) * 1000 + Double(attoseconds) / 1_000_000_000_000_000
 8 | 	}
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Error.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift -supplementary-output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/supplementaryOutputs-7 -target arm64-apple-tvos15.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Playwright -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Error.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Array+RemoveByIdentity.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Duration+milliseconds.o -debug-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftmodule -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Error.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Array+RemoveByIdentity.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Duration+milliseconds.o -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -index-system-modules
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Error.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Error.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Array+RemoveByIdentity.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Duration+milliseconds.swift
SwiftCompile normal arm64 Compiling\ resource_bundle_accessor.swift,\ ActionOptions.swift,\ Artifact.swift,\ Browser.swift /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:31:22: error: 'Mutex' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
 29 | 	}
 30 |
 31 | 	private let state = Mutex(State())
    |                      `- error: 'Mutex' is only available in tvOS 18.0 or newer
 32 |
 33 | 	/// Whether the browser is still connected to the server.
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:31:22: error: 'init(_:)' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
 29 | 	}
 30 |
 31 | 	private let state = Mutex(State())
    |                      `- error: 'init(_:)' is only available in tvOS 18.0 or newer
 32 |
 33 | 	/// Whether the browser is still connected to the server.
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:35:9: error: 'withLock' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
 32 |
 33 | 	/// Whether the browser is still connected to the server.
 34 | 	public var isConnected: Bool {
    |             `- note: add '@available' attribute to enclosing property
 35 | 		state.withLock { $0.isConnected }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 36 | 	}
 37 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:40:9: error: 'withLock' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
 37 |
 38 | 	/// The browser contexts belonging to this browser.
 39 | 	public var contexts: [BrowserContext] {
    |             `- note: add '@available' attribute to enclosing property
 40 | 		state.withLock { $0.contexts }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 41 | 	}
 42 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:48:16: error: 'withLock' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
 41 | 	}
 42 |
 43 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |           `- note: add '@available' attribute to enclosing initializer
 44 | 		version = initializer["version"] as? String ?? ""
 45 | 		super.init(connection: connection, parent: parent, type: type, guid: guid, initializer: initializer)
 46 |
 47 | 		on("close") { [weak self] _ in
 48 | 			self?.state.withLock { $0.isConnected = false }
    |                |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                `- note: add 'if #available' version check
 49 | 		}
 50 | 	}
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:129:9: error: 'withLock' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
126 |
127 | 	/// Adds a context to this browser's context list.
128 | 	func addContext(_ context: BrowserContext) {
    |       `- note: add '@available' attribute to enclosing instance method
129 | 		state.withLock { $0.contexts.append(context) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
130 | 	}
131 |
/Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift:134:9: error: 'withLock' is only available in tvOS 18.0 or newer
 15 | ///
 16 | /// See: https://playwright.dev/docs/api/class-browser
 17 | public final class Browser: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 18 | 	/// The browser version string (e.g. `"131.0.6778.33"`).
 19 | 	public let version: String
    :
131 |
132 | 	/// Removes a context from this browser's context list.
133 | 	func removeContext(_ context: BrowserContext) {
    |       `- note: add '@available' attribute to enclosing instance method
134 | 		state.withLock { $0.contexts.removeByIdentity(context) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
135 | 	}
136 |
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile resource_bundle_accessor.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ActionOptions.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Artifact.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Browser.swift
SwiftCompile normal arm64 Compiling\ Playwright.swift,\ ChannelOwner.swift,\ CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:41:21: error: 'Mutex' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 39 | 	}
 40 |
 41 | 	private let state: Mutex<State>
    |                     `- error: 'Mutex' is only available in tvOS 18.0 or newer
 42 |
 43 | 	init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:48:11: error: 'Mutex' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 41 | 	private let state: Mutex<State>
 42 |
 43 | 	init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |  `- note: add '@available' attribute to enclosing initializer
 44 | 		self.guid = guid
 45 | 		self.type = type
 46 | 		self.connection = connection
 47 | 		self.initializer = initializer
 48 | 		state = Mutex(State(parent: parent))
    |           |- error: 'Mutex' is only available in tvOS 18.0 or newer
    |           `- note: add 'if #available' version check
 49 | 	}
 50 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:48:11: error: 'init(_:)' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 41 | 	private let state: Mutex<State>
 42 |
 43 | 	init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
    |  `- note: add '@available' attribute to enclosing initializer
 44 | 		self.guid = guid
 45 | 		self.type = type
 46 | 		self.connection = connection
 47 | 		self.initializer = initializer
 48 | 		state = Mutex(State(parent: parent))
    |           |- error: 'init(_:)' is only available in tvOS 18.0 or newer
    |           `- note: add 'if #available' version check
 49 | 	}
 50 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:64:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 61 |
 62 | 	/// Parent in the object hierarchy.
 63 | 	var parent: ChannelOwner? {
    |      `- note: add '@available' attribute to enclosing property
 64 | 		state.withLock { $0.parent }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 65 | 	}
 66 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:69:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 66 |
 67 | 	/// Children in the object hierarchy, keyed by GUID.
 68 | 	var children: [String: ChannelOwner] {
    |      `- note: add '@available' attribute to enclosing property
 69 | 		state.withLock { $0.children }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 70 | 	}
 71 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:74:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 71 |
 72 | 	/// Looks up a single child by GUID.
 73 | 	func child(forGuid guid: String) -> ChannelOwner? {
    |       `- note: add '@available' attribute to enclosing instance method
 74 | 		state.withLock { $0.children[guid] }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 75 | 	}
 76 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:78:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 75 | 	}
 76 |
 77 | 	func setParent(_ newParent: ChannelOwner?) {
    |       `- note: add '@available' attribute to enclosing instance method
 78 | 		state.withLock { $0.parent = newParent }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 79 | 	}
 80 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:89:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 86 | 	/// - Parameter event: The event name (e.g. `"close"`, `"page"`).
 87 | 	/// - Parameter handler: The closure to invoke when the event is received.
 88 | 	func on(_ event: String, handler: @escaping @Sendable ([String: Any]) -> Void) {
    |       `- note: add '@available' attribute to enclosing instance method
 89 | 		state.withLock { $0.eventHandlers[event, default: []].append(handler) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
 90 | 	}
 91 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:102:24: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
 99 | 	/// no-ops. This prevents double-firing when `Connection.close()` emits
100 | 	/// on objects that already received a server-side close event.
101 | 	func emit(_ event: String, params: [String: Any]) {
    |       `- note: add '@available' attribute to enclosing instance method
102 | 		let handlers = state.withLock { state in
    |                        |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                        `- note: add 'if #available' version check
103 | 			if event == "close" {
104 | 				guard !state.closeEmitted else {
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:118:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
115 | 	}
116 |
117 | 	func addChild(_ child: ChannelOwner) {
    |       `- note: add '@available' attribute to enclosing instance method
118 | 		state.withLock { $0.children[child.guid] = child }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
119 | 	}
120 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:122:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
119 | 	}
120 |
121 | 	func removeChild(_ child: ChannelOwner) {
    |       `- note: add '@available' attribute to enclosing instance method
122 | 		state.withLock { _ = $0.children.removeValue(forKey: child.guid) }
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
123 | 	}
124 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:130:9: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
127 | 	/// Called by the connection during shutdown to break strong reference
128 | 	/// cycles between parent ↔ child maps.
129 | 	func dispose() {
    |       `- note: add '@available' attribute to enclosing instance method
130 | 		state.withLock { state in
    |         |- error: 'withLock' is only available in tvOS 18.0 or newer
    |         `- note: add 'if #available' version check
131 | 			state.parent = nil
132 | 			state.children.removeAll()
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift:155:15: error: 'withLock' is only available in tvOS 18.0 or newer
 17 | ///
 18 | /// See: https://github.com/microsoft/playwright-python/blob/main/playwright/_impl/_connection.py
 19 | public class ChannelOwner: @unchecked Sendable {
    |              `- note: add '@available' attribute to enclosing class
 20 | 	/// The protocol type name (e.g. "Browser", "Page", "BrowserType").
 21 | 	let type: String
    :
152 | 	///
153 | 	/// - Returns: `true` if the close was sent, `false` if already closing/closed.
154 | 	func sendClose() async throws -> Bool {
    |       `- note: add '@available' attribute to enclosing instance method
155 | 		guard state.withLock({ state in
    |               |- error: 'withLock' is only available in tvOS 18.0 or newer
    |               `- note: add 'if #available' version check
156 | 			guard !state.closeSent, !state.closeEmitted else { return false }
157 | 			state.closeSent = true
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift -supplementary-output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/supplementaryOutputs-8 -target arm64-apple-tvos15.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Playwright -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/ChannelOwner.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/CloseGuard.o -debug-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftmodule -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/ChannelOwner.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/CloseGuard.o -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -index-system-modules
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Playwright.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ChannelOwner.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile CloseGuard.swift
SwiftCompile normal arm64 Compiling\ Connection.swift,\ Driver.swift,\ ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift:54:40: error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
  7 | ///
  8 | /// See: https://playwright.dev/docs/api/class-playwright
  9 | enum Driver {
    |      `- note: add '@available' attribute to enclosing enum
 10 | 	/// A resolved executable and its arguments for launching the Playwright server.
 11 | 	struct Executable {
    :
 50 | 	/// SPM bundles it via `.copy("drivers")` into `Playwright_Playwright.bundle`.
 51 | 	/// This bundle travels with the compiled binary, making the driver portable.
 52 | 	private static func findInResourceBundle() -> Executable? {
    |                      `- note: add '@available' attribute to enclosing static method
 53 | 		if let driversURL = Bundle.module.url(forResource: "drivers", withExtension: nil) {
 54 | 			return resolveDriver(in: driversURL.appending(path: "playwright-\(playwrightVersion)-\(platform)"))
    |                                        |- error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
    |                                        `- note: add 'if #available' version check
 55 | 		}
 56 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift:87:28: error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
  7 | ///
  8 | /// See: https://playwright.dev/docs/api/class-playwright
  9 | enum Driver {
    |      `- note: add '@available' attribute to enclosing enum
 10 | 	/// A resolved executable and its arguments for launching the Playwright server.
 11 | 	struct Executable {
    :
 84 |
 85 | 	/// Checks whether a driver directory contains the expected node binary and CLI script.
 86 | 	private static func resolveDriver(in driverDir: URL) -> Executable? {
    |                      `- note: add '@available' attribute to enclosing static method
 87 | 		let nodePath = driverDir.appending(path: "node")
    |                            |- error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
    |                            `- note: add 'if #available' version check
 88 | 		let cliPath = driverDir.appending(path: "package/cli.js")
 89 |
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift:88:27: error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
  7 | ///
  8 | /// See: https://playwright.dev/docs/api/class-playwright
  9 | enum Driver {
    |      `- note: add '@available' attribute to enclosing enum
 10 | 	/// A resolved executable and its arguments for launching the Playwright server.
 11 | 	struct Executable {
    :
 84 |
 85 | 	/// Checks whether a driver directory contains the expected node binary and CLI script.
 86 | 	private static func resolveDriver(in driverDir: URL) -> Executable? {
    |                      `- note: add '@available' attribute to enclosing static method
 87 | 		let nodePath = driverDir.appending(path: "node")
 88 | 		let cliPath = driverDir.appending(path: "package/cli.js")
    |                           |- error: 'appending(path:directoryHint:)' is only available in tvOS 16.0 or newer
    |                           `- note: add 'if #available' version check
 89 |
 90 | 		if FileManager.default.fileExists(atPath: cliPath.path), FileManager.default.fileExists(atPath: nodePath.path) {
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift -supplementary-output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/supplementaryOutputs-9 -target arm64-apple-tvos15.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Playwright -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Connection.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Driver.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/ObjectFactory.o -debug-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftmodule -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Connection.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Driver.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/ObjectFactory.o -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -index-system-modules
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Connection.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Driver.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile ObjectFactory.swift
SwiftCompile normal arm64 Compiling\ PlaywrightServer.swift,\ Transport.swift,\ helpers.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:17:23: error: cannot find type 'Process' in scope
 15 | 	let messages: AsyncStream<Data>
 16 |
 17 | 	private let process: Process
    |                       `- error: cannot find type 'Process' in scope
 18 | 	private let stdinHandle: FileHandle
 19 | 	private let stdoutHandle: FileHandle
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:25:12: error: cannot find type 'Process' in scope
 23 |
 24 | 	private init(
 25 | 		process: Process,
    |            `- error: cannot find type 'Process' in scope
 26 | 		stdinHandle: FileHandle,
 27 | 		stdoutHandle: FileHandle,
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:55:14: error: cannot find 'Process' in scope
 53 | 		let executable = try Driver.find()
 54 |
 55 | 		let proc = Process()
    |              `- error: cannot find 'Process' in scope
 56 | 		if executable.program.contains("/") {
 57 | 			proc.arguments = executable.arguments
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:94:18: error: 'sleep(for:tolerance:clock:)' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-playwright
 13 | final class PlaywrightServer: Sendable {
    |             `- note: add '@available' attribute to enclosing class
 14 | 	/// Raw data chunks from the server's stdout, delivered via dispatch.
 15 | 	let messages: AsyncStream<Data>
    :
 50 | 	/// - Throws: ``PlaywrightError/driverNotFound(_:)`` if the driver cannot be located.
 51 | 	/// - Returns: A running server instance with valid stdin/stdout handles.
 52 | 	static func launch() async throws -> PlaywrightServer {
    |              `- note: add '@available' attribute to enclosing static method
 53 | 		let executable = try Driver.find()
 54 |
    :
 92 |
 93 | 		// brief pause to catch immediate failures (broken cli.js, missing deps, etc.)
 94 | 		try await Task.sleep(for: .milliseconds(50))
    |                  |- error: 'sleep(for:tolerance:clock:)' is only available in tvOS 16.0 or newer
    |                  `- note: add 'if #available' version check
 95 | 		guard proc.isRunning else {
 96 | 			let stderrData = stderrPipe.fileHandleForReading.availableData
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:94:30: error: 'milliseconds' is only available in tvOS 16.0 or newer
 11 | ///
 12 | /// See: https://playwright.dev/docs/api/class-playwright
 13 | final class PlaywrightServer: Sendable {
    |             `- note: add '@available' attribute to enclosing class
 14 | 	/// Raw data chunks from the server's stdout, delivered via dispatch.
 15 | 	let messages: AsyncStream<Data>
    :
 50 | 	/// - Throws: ``PlaywrightError/driverNotFound(_:)`` if the driver cannot be located.
 51 | 	/// - Returns: A running server instance with valid stdin/stdout handles.
 52 | 	static func launch() async throws -> PlaywrightServer {
    |              `- note: add '@available' attribute to enclosing static method
 53 | 		let executable = try Driver.find()
 54 |
    :
 92 |
 93 | 		// brief pause to catch immediate failures (broken cli.js, missing deps, etc.)
 94 | 		try await Task.sleep(for: .milliseconds(50))
    |                              |- error: 'milliseconds' is only available in tvOS 16.0 or newer
    |                              `- note: add 'if #available' version check
 95 | 		guard proc.isRunning else {
 96 | 			let stderrData = stderrPipe.fileHandleForReading.availableData
/Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift:154:35: error: cannot infer type of closure parameter '_' without a type annotation
152 | 			// If the process already exited between our check and setting the handler,
153 | 			// Foundation still calls the handler immediately.
154 | 			process.terminationHandler = { _ in
    |                                   `- error: cannot infer type of closure parameter '_' without a type annotation
155 | 				cont.resume()
156 | 			}
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:4:21: error: 'Duration' is only available in tvOS 16.0 or newer
 2 |
 3 | /// Default timeout for Playwright operations (30 seconds).
 4 | let defaultTimeout: Duration = .seconds(30)
   |     |               `- error: 'Duration' is only available in tvOS 16.0 or newer
   |     `- note: add '@available' attribute to enclosing let
 5 |
 6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:4:33: error: 'seconds' is only available in tvOS 16.0 or newer
 2 |
 3 | /// Default timeout for Playwright operations (30 seconds).
 4 | let defaultTimeout: Duration = .seconds(30)
   |     |                           `- error: 'seconds' is only available in tvOS 16.0 or newer
   |     `- note: add '@available' attribute to enclosing let
 5 |
 6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:7:27: error: 'Duration' is only available in tvOS 16.0 or newer
 5 |
 6 | /// Returns the timeout in milliseconds, falling back to the default timeout.
 7 | func timeoutMs(_ timeout: Duration? = nil) -> Double {
   |      |                    `- error: 'Duration' is only available in tvOS 16.0 or newer
   |      `- note: add '@available' attribute to enclosing global function
 8 | 	(timeout ?? defaultTimeout).milliseconds
 9 | }
/Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift:57:40: error: 'Duration' is only available in tvOS 16.0 or newer
53 | ///
54 | /// When `type` is nil, infers the format from `path` (if provided), defaulting to PNG.
55 | func screenshotParams(
   |      `- note: add '@available' attribute to enclosing global function
56 | 	type explicitType: ImageType? = nil, quality: Int? = nil,
57 | 	omitBackground: Bool? = nil, timeout: Duration? = nil, path: String? = nil
   |                                        `- error: 'Duration' is only available in tvOS 16.0 or newer
58 | ) throws -> [String: Any] {
59 | 	let type: ImageType
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/resource_bundle_accessor.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ActionOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Artifact.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Browser.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContext.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserContextOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/BrowserType.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ConsoleMessage.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Frame.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Keyboard.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Locator.swift /Users/admin/builder/spi-builder-workspace/src/core/API/LocatorFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Mouse.swift /Users/admin/builder/spi-builder-workspace/src/core/API/NavigationOptions.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Page.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Request.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift -primary-file /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift -supplementary-output-file-map /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/supplementaryOutputs-10 -target arm64-apple-tvos15.0 -module-can-import-version Darwin 428.0.10 0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/bin/swift-plugin-server\#SwiftMacros -disable-implicit-swift-modules -Xcc -fno-implicit-modules -Xcc -fno-implicit-module-maps -explicit-swift-module-map-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright-dependencies-1.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS27.0.sdk/Developer/Library/Frameworks -module-cache-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules -no-color-diagnostics -Xcc -fno-color-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_AVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -validate-clang-modules-once -clang-build-session-file /Users/admin/builder/spi-builder-workspace/.derivedData/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -enable-anonymous-context-mangled-names -file-compilation-dir /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -ivfsstatcache -Xcc /Users/admin/builder/spi-builder-workspace/.derivedData/SDKStatCaches.noindex/appletvos27.0-24J360-e829b21a6f8c9b70876ba0858053c044b32bfd8d43560033f8d89884cdb90028.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-appletvos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Playwright -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-tvos27.0 -target-sdk-version 27.0 -target-sdk-name appletvos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/PlaywrightServer.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Transport.o -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/helpers.o -debug-module-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Playwright.swiftmodule -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/PlaywrightServer.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/Transport.o -index-unit-output-path /Playwright.build/Debug-appletvos/Playwright-t.build/Objects-normal/arm64/helpers.o -index-store-path /Users/admin/builder/spi-builder-workspace/.derivedData/Index.noindex/DataStore -index-system-modules
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile PlaywrightServer.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Transport.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile helpers.swift
SwiftCompile normal arm64 Compiling\ Response.swift,\ Route.swift,\ Selectors.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift (in target 'Playwright' from project 'Playwright')
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'Mutex' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-response
 10 | public final class Response: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	/// The URL of the response.
 12 | 	public let url: String
    :
 36 | 	}
 37 |
 38 | 	private let state = Mutex(State())
    |                      `- error: 'Mutex' is only available in tvOS 18.0 or newer
 39 |
 40 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:38:22: error: 'init(_:)' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-response
 10 | public final class Response: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	/// The URL of the response.
 12 | 	public let url: String
    :
 36 | 	}
 37 |
 38 | 	private let state = Mutex(State())
    |                      `- error: 'init(_:)' is only available in tvOS 18.0 or newer
 39 |
 40 | 	override init(connection: Connection, parent: ChannelOwner?, type: String, guid: String, initializer: [String: Any]) {
/Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift:67:20: error: 'withLock' is only available in tvOS 18.0 or newer
  8 | ///
  9 | /// See: https://playwright.dev/docs/api/class-response
 10 | public final class Response: ChannelOwner, @unchecked Sendable {
    |                    `- note: add '@available' attribute to enclosing class
 11 | 	/// The URL of the response.
 12 | 	public let url: String
    :
 64 | 	///
 65 | 	/// See: https://playwright.dev/docs/api/class-response#response-body
 66 | 	public func body() async throws -> Data {
    |              `- note: add '@available' attribute to enclosing instance method
 67 | 		let task = state.withLock { state -> Task<Data, Error> in
    |                    |- error: 'withLock' is only available in tvOS 18.0 or newer
    |                    `- note: add 'if #available' version check
 68 | 			if let existing = state.bodyTask { return existing }
 69 | 			let task = Task { [self] in
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Response.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Response.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Route.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Route.swift
SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/Selectors.swift (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile Selectors.swift
SwiftEmitModule normal arm64 Emitting\ module\ for\ Playwright (in target 'Playwright' from project 'Playwright')
SwiftCompile normal arm64 (in target 'Playwright' from project 'Playwright')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
2026-09-24 14:38:23.446 xcodebuild[827:5103] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 Compiling\ Dialog.swift,\ Download.swift,\ ElementHandle.swift,\ EvaluateSerializer.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Dialog.swift /Users/admin/builder/spi-builder-workspace/src/core/API/Download.swift /Users/admin/builder/spi-builder-workspace/src/core/API/ElementHandle.swift /Users/admin/builder/spi-builder-workspace/src/core/API/EvaluateSerializer.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 Compiling\ Error.swift,\ Array+RemoveByIdentity.swift,\ Duration+milliseconds.swift /Users/admin/builder/spi-builder-workspace/src/core/Error.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Array+RemoveByIdentity.swift /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Extensions/Duration+milliseconds.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 Compiling\ Playwright.swift,\ ChannelOwner.swift,\ CloseGuard.swift /Users/admin/builder/spi-builder-workspace/src/core/Playwright.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/CloseGuard.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ChannelOwner.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 Compiling\ Connection.swift,\ Driver.swift,\ ObjectFactory.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Connection.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/ObjectFactory.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Driver.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 Compiling\ PlaywrightServer.swift,\ Transport.swift,\ helpers.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift /Users/admin/builder/spi-builder-workspace/src/core/Protocol/Transport.swift /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Protocol/PlaywrightServer.swift (in target 'Playwright' from project 'Playwright')
	SwiftCompile normal arm64 /Users/admin/builder/spi-builder-workspace/src/core/Support/helpers.swift (in target 'Playwright' from project 'Playwright')
	Building workspace Playwright with scheme Playwright-Package
(12 failures)
BUILD FAILURE 6.4 tvOS