Skip to content

Commit d663a6d

Browse files
committed
fix [MacOS 26 dev beta 5] Symbol not found
1 parent 72a5032 commit d663a6d

File tree

1 file changed

+15
-31
lines changed

1 file changed

+15
-31
lines changed

src/apple-ai.swift

Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ private func describeTranscriptEntry(_ entry: Transcript.Entry) -> String {
171171
}
172172

173173
struct 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, *)
931931
private 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(
11911171
private 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

Comments
 (0)