@@ -171,8 +171,8 @@ private func describeTranscriptEntry(_ entry: Transcript.Entry) -> String {
171171}
172172
173173struct Guardrails {
174- static var developerProvided : LanguageModelSession . Guardrails {
175- var guardrails = LanguageModelSession . Guardrails. default
174+ static var developerProvided : SystemLanguageModel . Guardrails {
175+ var guardrails = SystemLanguageModel . Guardrails. default
176176
177177 withUnsafeMutablePointer ( to: & guardrails) { ptr in
178178 let rawPtr = UnsafeMutableRawPointer ( ptr)
@@ -930,27 +930,7 @@ private func convertJSONSchemaToDynamic(_ dict: [String: Any], name: String? = n
930930@available ( macOS 26 . 0 , * )
931931private func generatedContentToJSON( _ content: GeneratedContent ) -> Any {
932932 // Try object
933- if let dict = try ? content. properties ( ) {
934- var result : [ String : Any ] = [ : ]
935- for (k, v) in dict {
936- result [ k] = generatedContentToJSON ( v)
937- }
938- return result
939- }
940-
941- // Try array
942- if let arr = try ? content. elements ( ) {
943- return arr. map { generatedContentToJSON ( $0) }
944- }
945-
946- // Try basic scalar types
947- if let str = try ? content. value ( String . self) { return str }
948- if let intVal = try ? content. value ( Int . self) { return intVal }
949- if let dbl = try ? content. value ( Double . self) { return dbl }
950- if let boolVal = try ? content. value ( Bool . self) { return boolVal }
951-
952- // Fallback to description
953- return String ( describing: content)
933+ return content. jsonString
954934}
955935
956936@available ( macOS 26 . 0 , * )
@@ -1191,8 +1171,9 @@ public func appleAIGenerateUnified(
11911171private func handleBasicMode( context: ConversationContext ) async throws -> String {
11921172 let transcript = Transcript ( entries: context. transcriptEntries)
11931173 debugPrintTranscript ( transcript, prompt: context. currentPrompt)
1174+ let model = SystemLanguageModel ( guardrails: Guardrails . developerProvided)
11941175 let session = LanguageModelSession (
1195- guardrails : Guardrails . developerProvided , transcript: transcript)
1176+ model : model , transcript: transcript)
11961177 let response = try await session. respond ( to: context. currentPrompt, options: context. options)
11971178
11981179 // Return as JSON for consistency
@@ -1208,15 +1189,16 @@ private func handleBasicModeStream(
12081189) async throws {
12091190 let transcript = Transcript ( entries: context. transcriptEntries)
12101191 debugPrintTranscript ( transcript, prompt: context. currentPrompt)
1192+ let model = SystemLanguageModel ( guardrails: Guardrails . developerProvided)
12111193 let session = LanguageModelSession (
1212- guardrails : Guardrails . developerProvided , transcript: transcript)
1194+ model : model , transcript: transcript)
12131195
12141196 var prev = " "
12151197 for try await cumulative in session. streamResponse (
12161198 to: context. currentPrompt, options: context. options)
12171199 {
1218- let delta = String ( cumulative. dropFirst ( prev. count) )
1219- prev = cumulative
1200+ let delta = String ( cumulative. content . dropFirst ( prev. count) )
1201+ prev = cumulative. content
12201202 guard !delta. isEmpty else { continue }
12211203
12221204 delta. withCString { cStr in
@@ -1245,8 +1227,9 @@ private func handleStructuredMode(
12451227 // Create session without tools (structured generation doesn't use tools constructor)
12461228 let transcript = Transcript ( entries: context. transcriptEntries)
12471229 debugPrintTranscript ( transcript, prompt: context. currentPrompt)
1230+ let model = SystemLanguageModel ( guardrails: Guardrails . developerProvided)
12481231 let session = LanguageModelSession (
1249- guardrails : Guardrails . developerProvided , transcript: transcript)
1232+ model : model , transcript: transcript)
12501233
12511234 // Generate structured response
12521235 let response = try await session. respond (
@@ -1338,8 +1321,9 @@ private func handleToolsMode(
13381321
13391322 let transcript = Transcript ( entries: finalEntries)
13401323 debugPrintTranscript ( transcript, prompt: context. currentPrompt)
1324+ let model = SystemLanguageModel ( guardrails: Guardrails . developerProvided)
13411325 let session = LanguageModelSession (
1342- guardrails : Guardrails . developerProvided , tools: tools, transcript: transcript)
1326+ model : model , tools: tools, transcript: transcript)
13431327
13441328 // Reset tool call collection
13451329 ToolCallCollector . shared. reset ( )
@@ -1401,8 +1385,8 @@ private func handleToolsMode(
14011385 }
14021386 }
14031387
1404- let delta = String ( cumulative. dropFirst ( prev. count) )
1405- prev = cumulative
1388+ let delta = String ( cumulative. content . dropFirst ( prev. count) )
1389+ prev = cumulative. content
14061390 guard !delta. isEmpty else { continue }
14071391
14081392 delta. withCString { cStr in
0 commit comments