The Swift Package Index logo.Swift Package Index

Build Information

Failed to build swift-context-management, reference main (d87f52), with Swift 6.4 for watchOS using Xcode 27.0 on 24 Sep 2026 01:15:37 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 swift-context-management -destination generic/platform=watchOS

Build Log

    |          |                                                                                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
258 |         var instructions: [Transcript.Entry] = []
259 |         var conversations: [Transcript.Entry] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextualSession.swift:257:129: error: 'Transcript' is only available in watchOS 27.0 or newer
123 | }
124 |
125 | private extension ContextualSession {
    |         `- note: add '@available' attribute to enclosing extension
126 |     func executeStreamWithRetry(
127 |         prompt: String,
    :
255 |     }
256 |
257 |     func extractInstructionsAndConversations(from transcript: Transcript) -> (instructions: [Transcript.Entry], conversations: [Transcript.Entry]) {
    |          |                                                                                                                      `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
258 |         var instructions: [Transcript.Entry] = []
259 |         var conversations: [Transcript.Entry] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ContextReductionLogger.swift:16:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 |
 4 | /// Helper for logging context reduction operations.
 5 | enum ContextReductionLogger {
   |      `- note: add '@available' attribute to enclosing enum
 6 |     private static let logger = Logger(subsystem: "SwiftContextManagement", category: "ContextReduction")
 7 |
   :
13 |     ///   - reducer: The name of the reducer that performed the reduction.
14 |     ///   - logLevel: The level of detail to log.
15 |     static func log(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         original: Transcript,
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
17 |         reduced: Transcript,
18 |         reducer: String,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ContextReductionLogger.swift:17:18: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 |
 4 | /// Helper for logging context reduction operations.
 5 | enum ContextReductionLogger {
   |      `- note: add '@available' attribute to enclosing enum
 6 |     private static let logger = Logger(subsystem: "SwiftContextManagement", category: "ContextReduction")
 7 |
   :
13 |     ///   - reducer: The name of the reducer that performed the reduction.
14 |     ///   - logLevel: The level of detail to log.
15 |     static func log(
   |                 `- note: add '@available' attribute to enclosing static method
16 |         original: Transcript,
17 |         reduced: Transcript,
   |                  `- error: 'Transcript' is only available in watchOS 27.0 or newer
18 |         reducer: String,
19 |         logLevel: ContextReductionLogLevel
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:19:21: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 16 |     ///   - overlapTokens: Number of tokens to overlap between chunks. Defaults to 200 (20%).
 17 |     /// - Returns: An array of entry chunks, where each chunk fits within the token limit.
 18 |     static func chunkEntries(
    |                 `- note: add '@available' attribute to enclosing static method
 19 |         _ entries: [Transcript.Entry],
    |                     `- error: 'Transcript' is only available in watchOS 27.0 or newer
 20 |         maxTokensPerChunk: Int = defaultMaxTokensPerChunk,
 21 |         overlapTokens: Int = defaultOverlapTokens
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:22:12: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 16 |     ///   - overlapTokens: Number of tokens to overlap between chunks. Defaults to 200 (20%).
 17 |     /// - Returns: An array of entry chunks, where each chunk fits within the token limit.
 18 |     static func chunkEntries(
    |                 `- note: add '@available' attribute to enclosing static method
 19 |         _ entries: [Transcript.Entry],
 20 |         maxTokensPerChunk: Int = defaultMaxTokensPerChunk,
 21 |         overlapTokens: Int = defaultOverlapTokens
 22 |     ) -> [[Transcript.Entry]] {
    |            `- error: 'Transcript' is only available in watchOS 27.0 or newer
 23 |         guard !entries.isEmpty else { return [] }
 24 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:69:56: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 67 |     /// - Parameter entries: The entries to estimate.
 68 |     /// - Returns: Total estimated token count.
 69 |     public static func estimateTotalTokens(_ entries: [Transcript.Entry]) -> Int {
    |                        |                               `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |                        `- note: add '@available' attribute to enclosing static method
 70 |         entries.reduce(0) { $0 + TranscriptHelpers.estimateTokens(for: $1) }
 71 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:80:22: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 77 |     ///   - newEntry: The new entry to be added.
 78 |     /// - Returns: `true` if the transcript plus new entry fits within the limit, `false` otherwise.
 79 |     static func fitsInContextWindow(
    |                 `- note: add '@available' attribute to enclosing static method
 80 |         transcript: [Transcript.Entry],
    |                      `- error: 'Transcript' is only available in watchOS 27.0 or newer
 81 |         newEntry: Transcript.Entry
 82 |     ) -> Bool {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:81:19: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 77 |     ///   - newEntry: The new entry to be added.
 78 |     /// - Returns: `true` if the transcript plus new entry fits within the limit, `false` otherwise.
 79 |     static func fitsInContextWindow(
    |                 `- note: add '@available' attribute to enclosing static method
 80 |         transcript: [Transcript.Entry],
 81 |         newEntry: Transcript.Entry
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 82 |     ) -> Bool {
 83 |         let currentTokens = estimateTotalTokens(transcript)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift:94:22: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// Utility for chunking conversation entries with token limits and overlap.
  4 | struct ConversationChunker {
    |        `- note: add '@available' attribute to enclosing struct
  5 |     /// Default maximum tokens per chunk (1000 tokens).
  6 |     static let defaultMaxTokensPerChunk: Int = 1000
    :
 91 |     ///   - transcript: The transcript entries to check.
 92 |     /// - Returns: `true` if the transcript fits within the limit, `false` otherwise.
 93 |     static func fitsInContextWindow(
    |                 `- note: add '@available' attribute to enclosing static method
 94 |         transcript: [Transcript.Entry]
    |                      `- error: 'Transcript' is only available in watchOS 27.0 or newer
 95 |     ) -> Bool {
 96 |         let totalTokens = estimateTotalTokens(transcript)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/Extensions/Transcript+Extensions.swift:4:18: error: 'Transcript' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Convenience extensions for Transcript.
 4 | public extension Transcript {
   |        |         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |        `- note: add '@available' attribute to enclosing extension
 5 |     /// Pretty prints the transcript with the given prefix count.
 6 |     ///
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/TranscriptHelpers.swift:13:48: error: 'Transcript' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Helper functions for working with Transcript entries, useful for logging and debugging.
 4 | public enum TranscriptHelpers {
   |             `- note: add '@available' attribute to enclosing enum
 5 |     /// Extracts text content from a transcript entry.
 6 |     ///
   :
11 |     /// - Returns: A string containing all text content from the entry, or `nil` if no text segments are found
12 |     ///            or the entry type doesn't contain text (e.g., tool calls, tool outputs).
13 |     public static func extractText(from entry: Transcript.Entry) -> String? {
   |                        |                       `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                        `- note: add '@available' attribute to enclosing static method
14 |         switch entry {
15 |         case .instructions(let instructions):
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/TranscriptHelpers.swift:54:43: error: 'Transcript' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Helper functions for working with Transcript entries, useful for logging and debugging.
 4 | public enum TranscriptHelpers {
   |             `- note: add '@available' attribute to enclosing enum
 5 |     /// Extracts text content from a transcript entry.
 6 |     ///
   :
52 |     /// - Parameter entry: The entry to estimate.
53 |     /// - Returns: Estimated token count.
54 |     static func estimateTokens(for entry: Transcript.Entry) -> Int {
   |                 |                         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing static method
55 |         guard let text = extractText(from: entry) else {
56 |             return 0
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ReductionInfo.swift:23:36: error: 'Transcript' is only available in watchOS 27.0 or newer
19 | /// }
20 | /// ```
21 | public struct ReductionInfo: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
22 |     /// The transcript before reduction was applied.
23 |     public let originalTranscript: Transcript
   |                                    `- error: 'Transcript' is only available in watchOS 27.0 or newer
24 |
25 |     /// The transcript after reduction was applied.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ReductionInfo.swift:26:35: error: 'Transcript' is only available in watchOS 27.0 or newer
19 | /// }
20 | /// ```
21 | public struct ReductionInfo: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
22 |     /// The transcript before reduction was applied.
23 |     public let originalTranscript: Transcript
24 |
25 |     /// The transcript after reduction was applied.
26 |     public let reducedTranscript: Transcript
   |                                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
27 |
28 |     /// The name of the reducer that performed the reduction.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/CustomStateExtractor.swift:7:46: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A state extractor implementation that uses a custom extraction function.
 5 | /// This allows users to provide their own state extraction logic.
 6 | public struct CustomStateExtractor: StateExtractor {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let extractFunction: @Sendable ([Transcript.Entry]) async throws -> StructuredState
   |                                              `- error: 'Transcript' is only available in watchOS 27.0 or newer
 8 |
 9 |     /// Creates a custom state extractor with a user-provided extraction function.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/CustomStateExtractor.swift:13:48: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A state extractor implementation that uses a custom extraction function.
 5 | /// This allows users to provide their own state extraction logic.
 6 | public struct CustomStateExtractor: StateExtractor {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let extractFunction: @Sendable ([Transcript.Entry]) async throws -> StructuredState
 8 |
   :
10 |     ///
11 |     /// - Parameter extractFunction: An async function that takes conversation entries and returns a `StructuredState`.
12 |     public init(
   |            `- note: add '@available' attribute to enclosing initializer
13 |         extractFunction: @escaping @Sendable ([Transcript.Entry]) async throws -> StructuredState
   |                                                `- error: 'Transcript' is only available in watchOS 27.0 or newer
14 |     ) {
15 |         self.extractFunction = extractFunction
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/CustomStateExtractor.swift:18:45: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A state extractor implementation that uses a custom extraction function.
 5 | /// This allows users to provide their own state extraction logic.
 6 | public struct CustomStateExtractor: StateExtractor {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let extractFunction: @Sendable ([Transcript.Entry]) async throws -> StructuredState
 8 |
   :
16 |     }
17 |
18 |     public func extractState(from entries: [Transcript.Entry]) async throws -> StructuredState {
   |                 |                           `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
19 |         return try await extractFunction(entries)
20 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift:15:45: error: 'Transcript' is only available in watchOS 27.0 or newer
  2 |
  3 | /// A state extractor that uses FoundationModels to extract structured state.
  4 | public struct FoundationModelsStateExtractor: StateExtractor {
    |               `- note: add '@available' attribute to enclosing struct
  5 |     public init() {}
  6 |
    :
 13 |     /// - Returns: A structured state containing extracted information.
 14 |     /// - Throws: An error if state extraction fails.
 15 |     public func extractState(from entries: [Transcript.Entry]) async throws -> StructuredState {
    |                 |                           `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |                 `- note: add '@available' attribute to enclosing instance method
 16 |         guard !entries.isEmpty else {
 17 |             return StructuredState(information: [])
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift:29:42: error: 'Transcript' is only available in watchOS 27.0 or newer
 22 | }
 23 |
 24 | private extension FoundationModelsStateExtractor {
    |         `- note: add '@available' attribute to enclosing extension
 25 |     /// Attempts to extract state, automatically splitting if context window is exceeded.
 26 |     ///
 27 |     /// - Parameter entries: The entries to extract state from.
 28 |     /// - Returns: A structured state.
 29 |     func extractStateWithRetry(entries: [Transcript.Entry]) async throws -> StructuredState {
    |          |                               `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 30 |         do {
 31 |             return try await extractStateDirectly(entries: entries)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift:41:41: error: 'Transcript' is only available in watchOS 27.0 or newer
 22 | }
 23 |
 24 | private extension FoundationModelsStateExtractor {
    |         `- note: add '@available' attribute to enclosing extension
 25 |     /// Attempts to extract state, automatically splitting if context window is exceeded.
 26 |     ///
    :
 39 |
 40 |     /// Extracts state directly in a single LLM call.
 41 |     func extractStateDirectly(entries: [Transcript.Entry]) async throws -> StructuredState {
    |          |                              `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 42 |         let conversationText = entries.enumerated().map { index, entry in
 43 |             if let text = TranscriptHelpers.extractText(from: entry) {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift:73:40: error: 'Transcript' is only available in watchOS 27.0 or newer
 22 | }
 23 |
 24 | private extension FoundationModelsStateExtractor {
    |         `- note: add '@available' attribute to enclosing extension
 25 |     /// Attempts to extract state, automatically splitting if context window is exceeded.
 26 |     ///
    :
 71 |
 72 |     /// Splits entries into parts, extracts state from each part, then combines the results.
 73 |     func extractStateInParts(entries: [Transcript.Entry]) async throws -> StructuredState {
    |          |                             `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         guard entries.count > 1 else {
 75 |             return try await extractStateFromSingleEntry(entries[0])
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift:89:47: error: 'Transcript' is only available in watchOS 27.0 or newer
 22 | }
 23 |
 24 | private extension FoundationModelsStateExtractor {
    |         `- note: add '@available' attribute to enclosing extension
 25 |     /// Attempts to extract state, automatically splitting if context window is exceeded.
 26 |     ///
    :
 87 |
 88 |     /// Handles a single entry that is too large by extracting from its text.
 89 |     func extractStateFromSingleEntry(_ entry: Transcript.Entry) async throws -> StructuredState {
    |          |                                    `- error: 'Transcript' is only available in watchOS 27.0 or newer
    |          `- note: add '@available' attribute to enclosing instance method
 90 |         guard let text = TranscriptHelpers.extractText(from: entry) else {
 91 |             return StructuredState(information: [])
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:6:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
 5 | public struct ExtractedFact: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 7 |     public let key: String
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:9:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
 5 | public struct ExtractedFact: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
 7 |     public let key: String
 8 |
 9 |     @Guide(description: "The value of this piece of information")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
10 |     public let value: String
11 | }
macro expansion @Generable:1:66: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
 7 |     public let key: String
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               |                                  `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:11:42: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
 7 |     public let key: String
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        |                 `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:33:20: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |   |                    `- error: 'GenerationID' is only available in watchOS 27.0 or newer
   |34 |     public var key: String.PartiallyGenerated?
   |35 |     public var value: String.PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:34:28: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var key: String.PartiallyGenerated?
   |   |                            `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |35 |     public var value: String.PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:35:30: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var key: String.PartiallyGenerated?
   |35 |     public var value: String.PartiallyGenerated?
   |   |                              `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |37 |         self.id = content.id ?? GenerationID()
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:36:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var key: String.PartiallyGenerated?
   |35 |     public var value: String.PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |38 |         self.key = try content.value(forProperty: "key")
   +--------------------------------------------------------------------
12 |
13 | @Generable
macro expansion @Generable:32:27: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:1: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
   |33 |     public var id: GenerationID
   |34 |     public var key: String.PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
13 | @Generable
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
  |               `- note: 'GenerationID' declared here
4 |     public static func == (a: GenerationID, b: GenerationID) -> Bool
5 |     public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct ExtractedFact: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
 7 |     public let key: String
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:15:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
12 |
13 | @Generable
14 | public struct StructuredState: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
16 |     public let information: [ExtractedFact]
17 | }
macro expansion @Generable:1:66: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               |                                  `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:10:42: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   | 8 | }
   | 9 |
   |10 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        |                 `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing property
   |11 |     let explicitNil = false
   |12 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:31:20: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   |28 | }
   |29 |
   |30 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |31 |     public var id: GenerationID
   |   |                    `- error: 'GenerationID' is only available in watchOS 27.0 or newer
   |32 |     public var information: [ExtractedFact].PartiallyGenerated?
   |33 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:32:45: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   |28 | }
   |29 |
   |30 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |31 |     public var id: GenerationID
   |32 |     public var information: [ExtractedFact].PartiallyGenerated?
   |   |                                             `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |33 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |34 |         self.id = content.id ?? GenerationID()
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:33:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   |28 | }
   |29 |
   |30 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |31 |     public var id: GenerationID
   |32 |     public var information: [ExtractedFact].PartiallyGenerated?
   |33 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |34 |         self.id = content.id ?? GenerationID()
   |35 |         self.information = try content.value(forProperty: "information")
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:30:27: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:1: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   |28 | }
   |29 |
   |30 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
   |31 |     public var id: GenerationID
   |32 |     public var information: [ExtractedFact].PartiallyGenerated?
   +--------------------------------------------------------------------
18 |
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
  |               `- note: 'GenerationID' declared here
4 |     public static func == (a: GenerationID, b: GenerationID) -> Bool
5 |     public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:13:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
11 | }
12 |
13 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
14 | public struct StructuredState: Sendable {
   |               `- note: add '@available' attribute to enclosing struct
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
macro expansion @Generable:2:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:17:2: note: expanded code originates here
11 | }
12 |
13 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | |- note: in expansion of macro 'Generable' on struct 'StructuredState' here
   | `- note: in expansion of macro 'Generable' on struct 'StructuredState' here
14 | public struct StructuredState: Sendable {
15 |     @Guide(description: "Extract all important information as key-value pairs. Use descriptive keys that indicate the type of information.")
16 |     public let information: [ExtractedFact]
17 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension StructuredState: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.information = try content.value(forProperty: "information")
   |4 |     }
   +--------------------------------------------------------------------
18 |
macro expansion @Generable:2:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift:11:2: note: expanded code originates here
 2 |
 3 | /// A key-value fact extracted from conversation history.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | |- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
   | `- note: in expansion of macro 'Generable' on struct 'ExtractedFact' here
 5 | public struct ExtractedFact: Sendable {
 6 |     @Guide(description: "The key or name of this piece of information (e.g., 'name', 'date', 'constraint_quiet_table')")
   :
 9 |     @Guide(description: "The value of this piece of information")
10 |     public let value: String
11 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension ExtractedFact: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.key = try content.value(forProperty: "key")
   |4 |         self.value = try content.value(forProperty: "value")
   +--------------------------------------------------------------------
12 |
13 | @Generable
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/StateExtractor.swift:9:38: error: 'Transcript' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Protocol for extracting structured state from conversation history.
 4 | public protocol StateExtractor: Sendable {
   |                 `- note: add '@available' attribute to enclosing protocol
 5 |     /// Extracts a structured state from the given conversation entries.
 6 |     ///
 7 |     /// - Parameter entries: The conversation entries to analyze.
 8 |     /// - Returns: A `StructuredState` containing important facts, constraints, and decisions.
 9 |     func extractState(from entries: [Transcript.Entry]) async throws -> StructuredState
   |          |                           `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
10 | }
11 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:7:48: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
   |                                                `- error: 'Transcript' is only available in watchOS 27.0 or newer
 8 |
 9 |     /// Creates a custom LLM summarizer with a user-provided summarization function.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:13:50: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
 8 |
   :
10 |     ///
11 |     /// - Parameter summarizeFunction: An async function that takes conversation entries, optional instructions, and locale, and returns a summary string.
12 |     public init(
   |            `- note: add '@available' attribute to enclosing initializer
13 |         summarizeFunction: @escaping @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
   |                                                  `- error: 'Transcript' is only available in watchOS 27.0 or newer
14 |     ) {
15 |         self.summarizeFunction = summarizeFunction
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:19:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
 8 |
   :
16 |     }
17 |
18 |     public func summarize(
   |                 `- note: add '@available' attribute to enclosing instance method
19 |         entries: [Transcript.Entry],
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
20 |         instructions: String?,
21 |         locale: Locale
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:31:19: error: 'Transcript' is only available in watchOS 27.0 or newer
  9 |
 10 | /// A default summarizer implementation using FoundationModels.
 11 | public struct FoundationModelsSummarizer: Summarizer {
    |               `- note: add '@available' attribute to enclosing struct
 12 |     private static let defaultSummarizationInstructions = """
 13 |     Summarize the following conversation briefly, preserving only essential facts and decisions. Remove examples, repetition, and implementation details. Provide only the summary content directly without any introductory phrases, explanations, or meta-commentary. Start immediately with the summary.
    :
 28 |     /// - Returns: A summary of the conversation.
 29 |     /// - Throws: An error if the summarization fails.
 30 |     public func summarize(
    |                 `- note: add '@available' attribute to enclosing instance method
 31 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 32 |         instructions: String?,
 33 |         locale: Locale = .enUS
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:56:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 53 |     ///   - instructions: The summarization instructions.
 54 |     /// - Returns: A summary string.
 55 |     func summarizeWithRetry(
    |          `- note: add '@available' attribute to enclosing instance method
 56 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 57 |         instructions: String
 58 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:74:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 75 |         instructions: String
 76 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:97:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 94 |
 95 |     /// Splits entries into parts, summarizes each part, then combines the summaries.
 96 |     func summarizeInParts(
    |          `- note: add '@available' attribute to enclosing instance method
 97 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 98 |         instructions: String
 99 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:120:18: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
117 |
118 |     /// Handles the edge case of a single entry that's too large for the context window.
119 |     func summarizeLargeEntry(
    |          `- note: add '@available' attribute to enclosing instance method
120 |         _ entry: Transcript.Entry,
    |                  `- error: 'Transcript' is only available in watchOS 27.0 or newer
121 |         instructions: String
122 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Summarizer.swift:16:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A protocol for summarizing conversation history.
 5 | /// Implementations can use different models or strategies for summarization.
 6 | public protocol Summarizer: Sendable {
   |                 `- note: add '@available' attribute to enclosing protocol
 7 |     /// Summarizes a collection of conversation entries.
 8 |     ///
   :
13 |     /// - Returns: A summary string of the conversation entries.
14 |     /// - Throws: An error if summarization fails.
15 |     func summarize(
   |          `- note: add '@available' attribute to enclosing instance method
16 |         entries: [Transcript.Entry],
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
17 |         instructions: String?,
18 |         locale: Locale
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:6:26: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
   |                          `- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 7 |
 8 |     /// Creates a FoundationModels topic detector.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:11:26: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
 9 |     ///
10 |     /// - Parameter session: An optional LanguageModelSession. If `nil`, creates a new session.
11 |     public init(session: LanguageModelSession? = nil) {
   |            |             `- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
   |            `- note: add '@available' attribute to enclosing initializer
12 |         self.session = session ?? LanguageModelSession()
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:15:43: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 |                         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:15:80: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 |                                                              `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:63:19: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
64 |     ) throws -> [[Transcript.Entry]] {
65 |         var topicGroups: [[Transcript.Entry]] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:64:19: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
64 |     ) throws -> [[Transcript.Entry]] {
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
65 |         var topicGroups: [[Transcript.Entry]] = []
66 |         var usedIndices = Set<Int>()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:6:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 7 |     public let topic: String
 8 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:9:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
 8 |
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
10 |     public let entryIndices: [Int]
11 | }
macro expansion @Generable:1:66: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               |                                  `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:11:42: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        |                 `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:33:20: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |   |                    `- error: 'GenerationID' is only available in watchOS 27.0 or newer
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:34:30: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |   |                              `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:35:36: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |   |                                    `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |37 |         self.id = content.id ?? GenerationID()
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:36:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |38 |         self.topic = try content.value(forProperty: "topic")
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:32:27: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
  |               `- note: 'GenerationID' declared here
4 |     public static func == (a: GenerationID, b: GenerationID) -> Bool
5 |     public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
macro expansion @Generable:2:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:2: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension TopicDetectionResult: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.topic = try content.value(forProperty: "topic")
   |4 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   +--------------------------------------------------------------------
12 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift:11:36: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A protocol for detecting topics in conversation history.
 4 | /// Implementations can use different strategies to group entries by topic.
 5 | public protocol TopicDetector: Sendable {
   |                 `- note: add '@available' attribute to enclosing protocol
 6 |     /// Detects topics in conversation entries and groups them accordingly.
 7 |     ///
   :
 9 |     /// - Returns: An array of topic groups, where each group contains entries that belong to the same topic. Each group is represented as an array of entries.
10 |     /// - Throws: An error if topic detection fails.
11 |     func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]]
   |          |                         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
12 | }
13 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift:11:73: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A protocol for detecting topics in conversation history.
 4 | /// Implementations can use different strategies to group entries by topic.
 5 | public protocol TopicDetector: Sendable {
   |                 `- note: add '@available' attribute to enclosing protocol
 6 |     /// Detects topics in conversation entries and groups them accordingly.
 7 |     ///
   :
 9 |     /// - Returns: An array of topic groups, where each group contains entries that belong to the same topic. Each group is represented as an array of entries.
10 |     /// - Throws: An error if topic detection fails.
11 |     func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]]
   |          |                                                              `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
12 | }
13 |
Failed frontend command:
/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/ContextReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/HeadTailWindowReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/HierarchicalSummaryReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/NoOpReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/RollingSummaryReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/SlidingWindowReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReducers/StructuredStateReducer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReductionEngine.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReductionLogLevel.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReductionObserver.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextReductionPolicy.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ContextualSession.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/Constants.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ContextReductionLogger.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/ConversationChunker.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/Extensions/Locale+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/Extensions/Transcript+Extensions.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Helpers/TranscriptHelpers.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/ReductionInfo.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/CustomStateExtractor.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/FoundationModelsStateExtractor.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredState.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/Models/StructuredStateConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/StateExtraction/StateExtractor.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Models/HierarchicalSummaryConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Models/RollingSummaryConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Models/SummaryGranularity.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Summarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift -target arm64-apple-watchos26.0 -disable-cross-import-overlay-search -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libFoundationModelsMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#FoundationModelsMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libObservationMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/bin/swift-plugin-server\#ObservationMacros -load-resolved-plugin /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib/swift/host/plugins/libSwiftMacros.dylib\#/Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.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/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement-dependencies-2.json -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.0.sdk -I /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -Isystem /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/usr/lib -F /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/Frameworks -F /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS27.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\=5 -profile-generate -profile-coverage-mapping -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -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/watchos27.0-24R360-e829b21a6f8c9b70876ba0858053c04477534ef55a1706bf4c1112bbb242f0a2.sdkstatcache -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Products/Debug-watchos/include -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/DerivedSources-normal/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/DerivedSources/arm64 -Xcc -I/Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name SwiftContextManagement -package-name spi_builder_workspace -const-gather-protocols-file /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement_const_extract_protocols.json -disable-clang-spi -clang-target arm64-apple-watchos27.0 -target-sdk-version 27.0 -target-sdk-name watchos27.0 -in-process-plugin-server-path /Applications/Xcode-27.0.0-Release.Candidate.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/libSwiftInProcPluginServer.dylib -emit-module-doc-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement.swiftdoc -emit-module-source-info-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement.swiftsourceinfo -emit-objc-header-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement-Swift.h -serialize-diagnostics-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement-primary-emit-module.dia -emit-dependencies-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement-primary-emit-module.d -parse-as-library -o /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement.swiftmodule -emit-abi-descriptor-path /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/swift-context-management.build/Debug-watchos/SwiftContextManagement-t.build/Objects-normal/arm64/SwiftContextManagement.abi.json
SwiftCompile normal arm64 (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode

SwiftCompile normal arm64_32 Compiling\ FoundationModelsTopicDetector.swift,\ TopicDetectionResult.swift,\ TopicDetector.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:6:26: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
   |                          `- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 7 |
 8 |     /// Creates a FoundationModels topic detector.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:11:26: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
 9 |     ///
10 |     /// - Parameter session: An optional LanguageModelSession. If `nil`, creates a new session.
11 |     public init(session: LanguageModelSession? = nil) {
   |            |             `- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
   |            `- note: add '@available' attribute to enclosing initializer
12 |         self.session = session ?? LanguageModelSession()
13 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:15:43: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 |                         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:15:80: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 |                                                              `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:63:19: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
64 |     ) throws -> [[Transcript.Entry]] {
65 |         var topicGroups: [[Transcript.Entry]] = []
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:64:19: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
64 |     ) throws -> [[Transcript.Entry]] {
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
65 |         var topicGroups: [[Transcript.Entry]] = []
66 |         var usedIndices = Set<Int>()
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:12:35: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
 9 |     ///
10 |     /// - Parameter session: An optional LanguageModelSession. If `nil`, creates a new session.
11 |     public init(session: LanguageModelSession? = nil) {
   |            `- note: add '@available' attribute to enclosing initializer
12 |         self.session = session ?? LanguageModelSession()
   |                                   |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
   |                                   `- note: add 'if #available' version check
13 |     }
14 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:12:35: error: 'init(model:tools:instructions:)' is unavailable in watchOS
10 |     /// - Parameter session: An optional LanguageModelSession. If `nil`, creates a new session.
11 |     public init(session: LanguageModelSession? = nil) {
12 |         self.session = session ?? LanguageModelSession()
   |                                   `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
13 |     }
14 |
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
  |                    `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:45:42: error: 'respond(to:generating:includeSchemaInPrompt:options:)' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
   :
43 |         """
44 |
45 |         let response = try await session.respond(to: topicDetectionPrompt, generating: [TopicDetectionResult].self)
   |                                          |- error: 'respond(to:generating:includeSchemaInPrompt:options:)' is only available in watchOS 27.0 or newer
   |                                          `- note: add 'if #available' version check
46 |         return try groupEntriesByTopics(
47 |             results: response.content,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:45:13: error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
   :
43 |         """
44 |
45 |         let response = try await session.respond(to: topicDetectionPrompt, generating: [TopicDetectionResult].self)
   |             |- error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
   |             `- note: add 'if #available' version check
46 |         return try groupEntriesByTopics(
47 |             results: response.content,
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:47:31: error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
 3 | /// A default topic detector implementation using FoundationModels.
 4 | /// Uses the LLM to identify topics and group conversation entries accordingly.
 5 | public struct FoundationModelsTopicDetector: TopicDetector {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     private let session: LanguageModelSession
 7 |
   :
13 |     }
14 |
15 |     public func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]] {
   |                 `- note: add '@available' attribute to enclosing instance method
16 |         let conversationText = entries.enumerated().map { index, entry in
17 |             if let text = TranscriptHelpers.extractText(from: entry) {
   :
45 |         let response = try await session.respond(to: topicDetectionPrompt, generating: [TopicDetectionResult].self)
46 |         return try groupEntriesByTopics(
47 |             results: response.content,
   |                               |- error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
   |                               `- note: add 'if #available' version check
48 |             entries: entries
49 |         )
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:65:28: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
64 |     ) throws -> [[Transcript.Entry]] {
65 |         var topicGroups: [[Transcript.Entry]] = []
   |                            |- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                            `- note: add 'if #available' version check
66 |         var usedIndices = Set<Int>()
67 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:9:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
 8 |
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
10 |     public let entryIndices: [Int]
11 | }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift:69:74: error: 'Transcript' is only available in watchOS 27.0 or newer
51 | }
52 |
53 | private extension FoundationModelsTopicDetector {
   |         `- note: add '@available' attribute to enclosing extension
54 |     /// Groups entries based on topic detection results.
55 |     ///
   :
59 |     /// - Returns: An array of entry groups, where each group represents a topic.
60 |     /// - Throws: An error if grouping fails (e.g., invalid indices).
61 |     func groupEntriesByTopics(
   |          `- note: add '@available' attribute to enclosing instance method
62 |         results: [TopicDetectionResult],
63 |         entries: [Transcript.Entry]
   :
67 |
68 |         for result in results {
69 |             let groupEntries = result.entryIndices.compactMap { index -> Transcript.Entry? in
   |                                                                          |- error: 'Transcript' is only available in watchOS 27.0 or newer
   |                                                                          `- note: add 'if #available' version check
70 |                 guard index >= 0 && index < entries.count else {
71 |                     return nil
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:6:6: error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
   |      `- error: 'Guide(description:)' is only available in watchOS 27.0 or newer
 7 |     public let topic: String
 8 |
macro expansion @Generable:1:66: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               |                                  `- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:11:42: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        |                 `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:33:20: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |   |                    `- error: 'GenerationID' is only available in watchOS 27.0 or newer
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:34:30: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |   |                              `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:35:36: error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |   |                                    `- error: 'PartiallyGenerated' is only available in watchOS 27.0 or newer
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |37 |         self.id = content.id ?? GenerationID()
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:36:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |38 |         self.topic = try content.value(forProperty: "topic")
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:32:27: warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- warning: protocol 'Identifiable' requires 'GenerationID' to be available in watchOS 26.0 and newer; this will be an error in a future Swift language mode
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   +--------------------------------------------------------------------
12 |
FoundationModels.GenerationID:3:15: note: 'GenerationID' declared here
1 | @available(iOS 26.0, macOS 26.0, watchOS 27.0, *)
2 | @available(tvOS, unavailable)
3 | public struct GenerationID : Sendable, Hashable {
  |               `- note: 'GenerationID' declared here
4 |     public static func == (a: GenerationID, b: GenerationID) -> Bool
5 |     public func hash(into hasher: inout Hasher)
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:4:2: error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   |  `- error: 'Generable(description:)' is only available in watchOS 27.0 or newer
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
macro expansion @Generable:2:57: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:2: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension TopicDetectionResult: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        |                                `- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.topic = try content.value(forProperty: "topic")
   |4 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:2:22: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   |   |                      |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                      `- note: add 'if #available' version check
   | 3 |         type: Self.self,
   | 4 |         properties: [
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:2:22: error: 'init(type:description:properties:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   |   |                      |- error: 'init(type:description:properties:)' is only available in watchOS 27.0 or newer
   |   |                      `- note: add 'if #available' version check
   | 3 |         type: Self.self,
   | 4 |         properties: [
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:5:30: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   | 4 |         properties: [
   | 5 |             FoundationModels.GenerationSchema.Property(name: "topic", description: "The topic of the entries", type: String.self),
   |   |                              |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                              `- note: add 'if #available' version check
   | 6 |             FoundationModels.GenerationSchema.Property(name: "entryIndices", description: "The indices of the entries that are related to the topic", type: [Int].self)
   | 7 |         ]
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:5:47: error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   | 4 |         properties: [
   | 5 |             FoundationModels.GenerationSchema.Property(name: "topic", description: "The topic of the entries", type: String.self),
   |   |                                               |- error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
   |   |                                               `- note: add 'if #available' version check
   | 6 |             FoundationModels.GenerationSchema.Property(name: "entryIndices", description: "The indices of the entries that are related to the topic", type: [Int].self)
   | 7 |         ]
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:6:30: error: 'GenerationSchema' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   | 4 |         properties: [
   | 5 |             FoundationModels.GenerationSchema.Property(name: "topic", description: "The topic of the entries", type: String.self),
   | 6 |             FoundationModels.GenerationSchema.Property(name: "entryIndices", description: "The indices of the entries that are related to the topic", type: [Int].self)
   |   |                              |- error: 'GenerationSchema' is only available in watchOS 27.0 or newer
   |   |                              `- note: add 'if #available' version check
   | 7 |         ]
   | 8 |     )
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:6:47: error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 1 | nonisolated public static var generationSchema: FoundationModels.GenerationSchema {
   |   |                               `- note: add '@available' attribute to enclosing static property
   | 2 |     FoundationModels.GenerationSchema(
   | 3 |         type: Self.self,
   | 4 |         properties: [
   | 5 |             FoundationModels.GenerationSchema.Property(name: "topic", description: "The topic of the entries", type: String.self),
   | 6 |             FoundationModels.GenerationSchema.Property(name: "entryIndices", description: "The indices of the entries that are related to the topic", type: [Int].self)
   |   |                                               |- error: 'init(name:description:type:guides:)' is only available in watchOS 27.0 or newer
   |   |                                               `- note: add 'if #available' version check
   | 7 |         ]
   | 8 |     )
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:13:49: error: 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   |                                                 |- error: 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
   |   |                                                 `- note: add 'if #available' version check
   |14 |     addProperty(name: "topic", value: self.topic)
   |15 |     addProperty(name: "entryIndices", value: self.entryIndices)
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:14:5: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |14 |     addProperty(name: "topic", value: self.topic)
   |   |     |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
   |   |     `- note: add 'if #available' version check
   |15 |     addProperty(name: "entryIndices", value: self.entryIndices)
   |16 |     return GeneratedContent(
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:15:5: error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |14 |     addProperty(name: "topic", value: self.topic)
   |15 |     addProperty(name: "entryIndices", value: self.entryIndices)
   |   |     |- error: conformance of 'Array<Element>' to 'Generable' is only available in watchOS 27.0 or newer
   |   |     `- note: add 'if #available' version check
   |16 |     return GeneratedContent(
   |17 |         properties: properties,
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:16:12: error: 'GeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |14 |     addProperty(name: "topic", value: self.topic)
   |15 |     addProperty(name: "entryIndices", value: self.entryIndices)
   |16 |     return GeneratedContent(
   |   |            |- error: 'GeneratedContent' is only available in watchOS 27.0 or newer
   |   |            `- note: add 'if #available' version check
   |17 |         properties: properties,
   |18 |         uniquingKeysWith: { _, second in
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:16:12: error: 'init(properties:id:uniquingKeysWith:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |14 |     addProperty(name: "topic", value: self.topic)
   |15 |     addProperty(name: "entryIndices", value: self.entryIndices)
   |16 |     return GeneratedContent(
   |   |            |- error: 'init(properties:id:uniquingKeysWith:)' is only available in watchOS 27.0 or newer
   |   |            `- note: add 'if #available' version check
   |17 |         properties: properties,
   |18 |         uniquingKeysWith: { _, second in
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:22:48: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   :
   |20 |         }
   |21 |     )
   |22 |     func addProperty(name: String, value: some Generable) {
   |   |                                                `- error: 'Generable' is only available in watchOS 27.0 or newer
   |23 |       properties.append((name: name, value: value))
   |24 |     }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:22:48: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   :
   |20 |         }
   |21 |     )
   |22 |     func addProperty(name: String, value: some Generable) {
   |   |                                                `- error: 'Generable' is only available in watchOS 27.0 or newer
   |23 |       properties.append((name: name, value: value))
   |24 |     }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:25:49: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   :
   |23 |       properties.append((name: name, value: value))
   |24 |     }
   |25 |     func addProperty(name: String, value: (some Generable)?) {
   |   |                                                 `- error: 'Generable' is only available in watchOS 27.0 or newer
   |26 |       if explicitNil || value != nil {
   |27 |         properties.append((name: name, value: value))
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:25:49: error: 'Generable' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   :
   |23 |       properties.append((name: name, value: value))
   |24 |     }
   |25 |     func addProperty(name: String, value: (some Generable)?) {
   |   |                                                 `- error: 'Generable' is only available in watchOS 27.0 or newer
   |26 |       if explicitNil || value != nil {
   |27 |         properties.append((name: name, value: value))
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:27:47: error: conformance of 'Optional<Wrapped>' to 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
   |               `- note: add '@available' attribute to enclosing struct
 6 |     @Guide(description: "The topic of the entries")
 7 |     public let topic: String
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   | 9 | }
   |10 |
   |11 | nonisolated public var generatedContent: GeneratedContent {
   |   |                        `- note: add '@available' attribute to enclosing property
   |12 |     let explicitNil = false
   |13 |     var properties = [(name: String, value: any ConvertibleToGeneratedContent)]()
   |   :
   |25 |     func addProperty(name: String, value: (some Generable)?) {
   |26 |       if explicitNil || value != nil {
   |27 |         properties.append((name: name, value: value))
   |   |                                               |- error: conformance of 'Optional<Wrapped>' to 'ConvertibleToGeneratedContent' is only available in watchOS 27.0 or newer
   |   |                                               `- note: add 'if #available' version check
   |28 |       }
   |29 |     }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:37:33: error: 'GenerationID' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |   |                                 |- error: 'GenerationID' is only available in watchOS 27.0 or newer
   |   |                                 `- note: add 'if #available' version check
   |38 |         self.topic = try content.value(forProperty: "topic")
   |39 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:37:33: error: 'init()' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |   |                                 |- error: 'init()' is only available in watchOS 27.0 or newer
   |   |                                 `- note: add 'if #available' version check
   |38 |         self.topic = try content.value(forProperty: "topic")
   |39 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:38:34: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |38 |         self.topic = try content.value(forProperty: "topic")
   |   |                                  |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
   |   |                                  `- note: add 'if #available' version check
   |39 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   |40 |     }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:39:41: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:1: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |30 | }
   |31 |
   |32 | nonisolated public struct PartiallyGenerated: Identifiable, nonisolated FoundationModels.ConvertibleFromGeneratedContent {
   |   |                           `- note: add '@available' attribute to enclosing struct
   |33 |     public var id: GenerationID
   |34 |     public var topic: String.PartiallyGenerated?
   |35 |     public var entryIndices: [Int].PartiallyGenerated?
   |36 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |   |                        `- note: add '@available' attribute to enclosing initializer
   |37 |         self.id = content.id ?? GenerationID()
   |38 |         self.topic = try content.value(forProperty: "topic")
   |39 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   |   |                                         |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
   |   |                                         `- note: add 'if #available' version check
   |40 |     }
   |41 | }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:3:34: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:2: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension TopicDetectionResult: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.topic = try content.value(forProperty: "topic")
   |  |                                  |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
   |  |                                  `- note: add 'if #available' version check
   |4 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   |5 |     }
   +--------------------------------------------------------------------
12 |
macro expansion @Generable:4:41: error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
`- /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift:11:2: note: expanded code originates here
 2 |
 3 | /// Result of topic detection containing a topic and the indices of related entries.
 4 | @Generable
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | |- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
   | `- note: in expansion of macro 'Generable' on struct 'TopicDetectionResult' here
 5 | public struct TopicDetectionResult {
 6 |     @Guide(description: "The topic of the entries")
   :
 9 |     @Guide(description: "The indices of the entries that are related to the topic")
10 |     public let entryIndices: [Int]
11 | }
   +--- macro expansion @Generable -------------------------------------
   |1 | extension TopicDetectionResult: nonisolated FoundationModels.Generable {
   |  | `- note: add '@available' attribute to enclosing extension
   |2 |     nonisolated public init(_ content: FoundationModels.GeneratedContent) throws {
   |  |                        `- note: add '@available' attribute to enclosing initializer
   |3 |         self.topic = try content.value(forProperty: "topic")
   |4 |         self.entryIndices = try content.value(forProperty: "entryIndices")
   |  |                                         |- error: 'value(_:forProperty:)' is only available in watchOS 27.0 or newer
   |  |                                         `- note: add 'if #available' version check
   |5 |     }
   |6 | }
   +--------------------------------------------------------------------
12 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift:11:36: error: 'Transcript' is only available in watchOS 27.0 or newer
 3 | /// A protocol for detecting topics in conversation history.
 4 | /// Implementations can use different strategies to group entries by topic.
 5 | public protocol TopicDetector: Sendable {
   |                 `- note: add '@available' attribute to enclosing protocol
 6 |     /// Detects topics in conversation entries and groups them accordingly.
 7 |     ///
   :
 9 |     /// - Returns: An array of topic groups, where each group contains entries that belong to the same topic. Each group is represented as an array of entries.
10 |     /// - Throws: An error if topic detection fails.
11 |     func detectTopics(in entries: [Transcript.Entry]) async throws -> [[Transcript.Entry]]
   |          |                         `- error: 'Transcript' is only available in watchOS 27.0 or newer
   |          `- note: add '@available' attribute to enclosing instance method
12 | }
13 |
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/FoundationModelsTopicDetector.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FoundationModelsTopicDetector.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/Models/TopicDetectionResult.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile TopicDetectionResult.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/TopicDetection/TopicDetector.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile TopicDetector.swift
SwiftCompile normal arm64_32 Compiling\ CustomLLMSummarizer.swift,\ FoundationModelsSummarizer.swift,\ HierarchicalSummaryConfiguration.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Models/HierarchicalSummaryConfiguration.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:7:48: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
   |                                                `- error: 'Transcript' is only available in watchOS 27.0 or newer
 8 |
 9 |     /// Creates a custom LLM summarizer with a user-provided summarization function.
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:13:50: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
 8 |
   :
10 |     ///
11 |     /// - Parameter summarizeFunction: An async function that takes conversation entries, optional instructions, and locale, and returns a summary string.
12 |     public init(
   |            `- note: add '@available' attribute to enclosing initializer
13 |         summarizeFunction: @escaping @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
   |                                                  `- error: 'Transcript' is only available in watchOS 27.0 or newer
14 |     ) {
15 |         self.summarizeFunction = summarizeFunction
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift:19:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 4 | /// A summarizer implementation that uses a custom LLM function.
 5 | /// This allows users to provide their own summarization logic.
 6 | public struct CustomLLMSummarizer: Summarizer {
   |               `- note: add '@available' attribute to enclosing struct
 7 |     private let summarizeFunction: @Sendable ([Transcript.Entry], String?, Locale) async throws -> String
 8 |
   :
16 |     }
17 |
18 |     public func summarize(
   |                 `- note: add '@available' attribute to enclosing instance method
19 |         entries: [Transcript.Entry],
   |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
20 |         instructions: String?,
21 |         locale: Locale
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:31:19: error: 'Transcript' is only available in watchOS 27.0 or newer
  9 |
 10 | /// A default summarizer implementation using FoundationModels.
 11 | public struct FoundationModelsSummarizer: Summarizer {
    |               `- note: add '@available' attribute to enclosing struct
 12 |     private static let defaultSummarizationInstructions = """
 13 |     Summarize the following conversation briefly, preserving only essential facts and decisions. Remove examples, repetition, and implementation details. Provide only the summary content directly without any introductory phrases, explanations, or meta-commentary. Start immediately with the summary.
    :
 28 |     /// - Returns: A summary of the conversation.
 29 |     /// - Throws: An error if the summarization fails.
 30 |     public func summarize(
    |                 `- note: add '@available' attribute to enclosing instance method
 31 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 32 |         instructions: String?,
 33 |         locale: Locale = .enUS
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:56:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 53 |     ///   - instructions: The summarization instructions.
 54 |     /// - Returns: A summary string.
 55 |     func summarizeWithRetry(
    |          `- note: add '@available' attribute to enclosing instance method
 56 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 57 |         instructions: String
 58 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:74:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 75 |         instructions: String
 76 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:97:19: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 94 |
 95 |     /// Splits entries into parts, summarizes each part, then combines the summaries.
 96 |     func summarizeInParts(
    |          `- note: add '@available' attribute to enclosing instance method
 97 |         entries: [Transcript.Entry],
    |                   `- error: 'Transcript' is only available in watchOS 27.0 or newer
 98 |         instructions: String
 99 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:120:18: error: 'Transcript' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
117 |
118 |     /// Handles the edge case of a single entry that's too large for the context window.
119 |     func summarizeLargeEntry(
    |          `- note: add '@available' attribute to enclosing instance method
120 |         _ entry: Transcript.Entry,
    |                  `- error: 'Transcript' is only available in watchOS 27.0 or newer
121 |         instructions: String
122 |     ) async throws -> String {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:62:30: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 53 |     ///   - instructions: The summarization instructions.
 54 |     /// - Returns: A summary string.
 55 |     func summarizeWithRetry(
    |          `- note: add '@available' attribute to enclosing instance method
 56 |         entries: [Transcript.Entry],
 57 |         instructions: String
    :
 60 |             // Try to summarize directly
 61 |             return try await summarizeDirectly(entries: entries, instructions: instructions)
 62 |         } catch let error as LanguageModelSession.GenerationError {
    |                              |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                              `- note: add 'if #available' version check
 63 |             // Check if it's a context window error
 64 |             if case .exceededContextWindowSize = error {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:62:30: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 53 |     ///   - instructions: The summarization instructions.
 54 |     /// - Returns: A summary string.
 55 |     func summarizeWithRetry(
    |          `- note: add '@available' attribute to enclosing instance method
 56 |         entries: [Transcript.Entry],
 57 |         instructions: String
    :
 60 |             // Try to summarize directly
 61 |             return try await summarizeDirectly(entries: entries, instructions: instructions)
 62 |         } catch let error as LanguageModelSession.GenerationError {
    |                              |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                              `- note: add 'if #available' version check
 63 |             // Check if it's a context window error
 64 |             if case .exceededContextWindowSize = error {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:90:23: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
 75 |         instructions: String
    :
 88 |         """
 89 |
 90 |         let session = LanguageModelSession()
    |                       |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                       `- note: add 'if #available' version check
 91 |         let response = try await session.respond(to: prompt)
 92 |         return response.content
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:90:23: error: 'init(model:tools:instructions:)' is unavailable in watchOS
 88 |         """
 89 |
 90 |         let session = LanguageModelSession()
    |                       `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
 91 |         let response = try await session.respond(to: prompt)
 92 |         return response.content
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
  |                    `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:91:42: error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
 75 |         instructions: String
    :
 89 |
 90 |         let session = LanguageModelSession()
 91 |         let response = try await session.respond(to: prompt)
    |                                          |- error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
    |                                          `- note: add 'if #available' version check
 92 |         return response.content
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:91:13: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
 75 |         instructions: String
    :
 89 |
 90 |         let session = LanguageModelSession()
 91 |         let response = try await session.respond(to: prompt)
    |             |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |             `- note: add 'if #available' version check
 92 |         return response.content
 93 |     }
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:92:25: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
 71 |
 72 |     /// Summarizes entries directly in a single LLM call.
 73 |     func summarizeDirectly(
    |          `- note: add '@available' attribute to enclosing instance method
 74 |         entries: [Transcript.Entry],
 75 |         instructions: String
    :
 90 |         let session = LanguageModelSession()
 91 |         let response = try await session.respond(to: prompt)
 92 |         return response.content
    |                         |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |                         `- note: add 'if #available' version check
 93 |     }
 94 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:155:27: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
153 |
154 |         do {
155 |             let session = LanguageModelSession()
    |                           |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                           `- note: add 'if #available' version check
156 |             let response = try await session.respond(to: prompt)
157 |             return response.content
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:155:27: error: 'init(model:tools:instructions:)' is unavailable in watchOS
153 |
154 |         do {
155 |             let session = LanguageModelSession()
    |                           `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
156 |             let response = try await session.respond(to: prompt)
157 |             return response.content
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
  |                    `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:156:46: error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
154 |         do {
155 |             let session = LanguageModelSession()
156 |             let response = try await session.respond(to: prompt)
    |                                              |- error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
    |                                              `- note: add 'if #available' version check
157 |             return response.content
158 |         } catch let error as LanguageModelSession.GenerationError {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:156:17: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
154 |         do {
155 |             let session = LanguageModelSession()
156 |             let response = try await session.respond(to: prompt)
    |                 |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |                 `- note: add 'if #available' version check
157 |             return response.content
158 |         } catch let error as LanguageModelSession.GenerationError {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:157:29: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
155 |             let session = LanguageModelSession()
156 |             let response = try await session.respond(to: prompt)
157 |             return response.content
    |                             |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |                             `- note: add 'if #available' version check
158 |         } catch let error as LanguageModelSession.GenerationError {
159 |             if case .exceededContextWindowSize = error {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:158:30: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
156 |             let response = try await session.respond(to: prompt)
157 |             return response.content
158 |         } catch let error as LanguageModelSession.GenerationError {
    |                              |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                              `- note: add 'if #available' version check
159 |             if case .exceededContextWindowSize = error {
160 |                 // Text still too large, split it further
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:158:30: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
139 |
140 |     /// Summarizes raw text with retry on context window errors.
141 |     func summarizeText(
    |          `- note: add '@available' attribute to enclosing instance method
142 |         _ text: String,
143 |         instructions: String
    :
156 |             let response = try await session.respond(to: prompt)
157 |             return response.content
158 |         } catch let error as LanguageModelSession.GenerationError {
    |                              |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                              `- note: add 'if #available' version check
159 |             if case .exceededContextWindowSize = error {
160 |                 // Text still too large, split it further
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:196:27: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
179 |
180 |     /// Combines multiple summaries into one coherent summary.
181 |     func combineSummaries(_ summaries: [String]) async throws -> String {
    |          `- note: add '@available' attribute to enclosing instance method
182 |         let combinedText = summaries.enumerated()
183 |             .map { "Part \($0.offset + 1):\n\($0.element)" }
    :
194 |
195 |         do {
196 |             let session = LanguageModelSession()
    |                           |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                           `- note: add 'if #available' version check
197 |             let response = try await session.respond(to: prompt)
198 |             return response.content
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:196:27: error: 'init(model:tools:instructions:)' is unavailable in watchOS
194 |
195 |         do {
196 |             let session = LanguageModelSession()
    |                           `- error: 'init(model:tools:instructions:)' is unavailable in watchOS
197 |             let response = try await session.respond(to: prompt)
198 |             return response.content
FoundationModels.LanguageModelSession.init:2:20: note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
1 | class LanguageModelSession {
2 | public convenience init(model: SystemLanguageModel = .default, tools: [any Tool] = [], instructions: Instructions? = nil)}
  |                    `- note: 'init(model:tools:instructions:)' has been explicitly marked unavailable here
3 |
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:197:46: error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
179 |
180 |     /// Combines multiple summaries into one coherent summary.
181 |     func combineSummaries(_ summaries: [String]) async throws -> String {
    |          `- note: add '@available' attribute to enclosing instance method
182 |         let combinedText = summaries.enumerated()
183 |             .map { "Part \($0.offset + 1):\n\($0.element)" }
    :
195 |         do {
196 |             let session = LanguageModelSession()
197 |             let response = try await session.respond(to: prompt)
    |                                              |- error: 'respond(to:options:)' is only available in watchOS 27.0 or newer
    |                                              `- note: add 'if #available' version check
198 |             return response.content
199 |         } catch let error as LanguageModelSession.GenerationError {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:197:17: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
179 |
180 |     /// Combines multiple summaries into one coherent summary.
181 |     func combineSummaries(_ summaries: [String]) async throws -> String {
    |          `- note: add '@available' attribute to enclosing instance method
182 |         let combinedText = summaries.enumerated()
183 |             .map { "Part \($0.offset + 1):\n\($0.element)" }
    :
195 |         do {
196 |             let session = LanguageModelSession()
197 |             let response = try await session.respond(to: prompt)
    |                 |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |                 `- note: add 'if #available' version check
198 |             return response.content
199 |         } catch let error as LanguageModelSession.GenerationError {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:198:29: error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
179 |
180 |     /// Combines multiple summaries into one coherent summary.
181 |     func combineSummaries(_ summaries: [String]) async throws -> String {
    |          `- note: add '@available' attribute to enclosing instance method
182 |         let combinedText = summaries.enumerated()
183 |             .map { "Part \($0.offset + 1):\n\($0.element)" }
    :
196 |             let session = LanguageModelSession()
197 |             let response = try await session.respond(to: prompt)
198 |             return response.content
    |                             |- error: conformance of 'String' to 'Generable' is only available in watchOS 27.0 or newer
    |                             `- note: add 'if #available' version check
199 |         } catch let error as LanguageModelSession.GenerationError {
200 |             if case .exceededContextWindowSize = error {
/Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift:199:30: error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
 46 | }
 47 |
 48 | private extension FoundationModelsSummarizer {
    |         `- note: add '@available' attribute to enclosing extension
 49 |     /// Attempts to summarize entries, automatically splitting if context window is exceeded.
 50 |     ///
    :
179 |
180 |     /// Combines multiple summaries into one coherent summary.
181 |     func combineSummaries(_ summaries: [String]) async throws -> String {
    |          `- note: add '@available' attribute to enclosing instance method
182 |         let combinedText = summaries.enumerated()
183 |             .map { "Part \($0.offset + 1):\n\($0.element)" }
    :
197 |             let response = try await session.respond(to: prompt)
198 |             return response.content
199 |         } catch let error as LanguageModelSession.GenerationError {
    |                              |- error: 'LanguageModelSession' is only available in watchOS 27.0 or newer
    |                              `- note: add 'if #available' version check
200 |             if case .exceededContextWindowSize = error {
201 |                 // Too many summaries to combine at once - split them
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/CustomLLMSummarizer.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile CustomLLMSummarizer.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/FoundationModelsSummarizer.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile FoundationModelsSummarizer.swift
SwiftCompile normal arm64_32 /Users/admin/builder/spi-builder-workspace/Sources/SwiftContextManagement/Summarization/Models/HierarchicalSummaryConfiguration.swift (in target 'SwiftContextManagement' from project 'swift-context-management')
    cd /Users/admin/builder/spi-builder-workspace/.swiftpm/xcode
    builtin-SwiftPerFileCompile HierarchicalSummaryConfiguration.swift
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/SwiftExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/SDKExplicitPrecompiledModules
PruneExplicitPrecompiledModules /Users/admin/builder/spi-builder-workspace/.derivedData/Build/Intermediates.noindex/ExplicitPrecompiledModules
2026-09-23 21:15:36.224 xcodebuild[763:4597] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
2026-09-23 21:15:36.367 xcodebuild[763:4597] [MT] IDERunDestination: Supported platforms for the buildables in the current scheme is empty.
** BUILD FAILED **
The following build commands failed:
	SwiftCompile normal arm64_32 (in target 'SwiftContextManagement' from project 'swift-context-management')
	SwiftEmitModule normal arm64_32 Emitting\ module\ for\ SwiftContextManagement (in target 'SwiftContextManagement' from project 'swift-context-management')
	SwiftEmitModule normal arm64 Emitting\ module\ for\ SwiftContextManagement (in target 'SwiftContextManagement' from project 'swift-context-management')
	SwiftCompile normal arm64 (in target 'SwiftContextManagement' from project 'swift-context-management')
	Building workspace swift-context-management with scheme swift-context-management
(5 failures)
BUILD FAILURE 6.4 watchOS