Add Apple Intelligence gRPC server
Implements a Swift gRPC server that exposes Apple's Foundation Models (Apple Intelligence) over the network for LAN access. Features: - Complete: Unary RPC for prompt/response - StreamComplete: Server streaming RPC for token-by-token responses - Health: Check model availability - Optional API key authentication via gRPC metadata - Configurable host/port via CLI args or environment variables Requires macOS 26 (Tahoe) with Apple Intelligence enabled. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
// DO NOT EDIT.
|
||||
// swift-format-ignore-file
|
||||
// swiftlint:disable all
|
||||
//
|
||||
// Generated protocol buffer code for apple_intelligence.proto
|
||||
|
||||
import Foundation
|
||||
import SwiftProtobuf
|
||||
|
||||
// MARK: - Messages
|
||||
|
||||
struct Appleintelligence_CompletionRequest: Sendable, SwiftProtobuf.Message {
|
||||
static let protoMessageName: String = "appleintelligence.CompletionRequest"
|
||||
|
||||
var prompt: String = ""
|
||||
var temperature: Float = 0
|
||||
var maxTokens: Int32 = 0
|
||||
|
||||
var hasTemperature: Bool = false
|
||||
var hasMaxTokens: Bool = false
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
init(prompt: String, temperature: Float? = nil, maxTokens: Int32? = nil) {
|
||||
self.prompt = prompt
|
||||
if let temp = temperature {
|
||||
self.temperature = temp
|
||||
self.hasTemperature = true
|
||||
}
|
||||
if let tokens = maxTokens {
|
||||
self.maxTokens = tokens
|
||||
self.hasMaxTokens = true
|
||||
}
|
||||
}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularStringField(value: &prompt)
|
||||
case 2:
|
||||
try decoder.decodeSingularFloatField(value: &temperature)
|
||||
hasTemperature = true
|
||||
case 3:
|
||||
try decoder.decodeSingularInt32Field(value: &maxTokens)
|
||||
hasMaxTokens = true
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if !prompt.isEmpty {
|
||||
try visitor.visitSingularStringField(value: prompt, fieldNumber: 1)
|
||||
}
|
||||
if hasTemperature {
|
||||
try visitor.visitSingularFloatField(value: temperature, fieldNumber: 2)
|
||||
}
|
||||
if hasMaxTokens {
|
||||
try visitor.visitSingularInt32Field(value: maxTokens, fieldNumber: 3)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.prompt == rhs.prompt && lhs.temperature == rhs.temperature && lhs.maxTokens == rhs.maxTokens && lhs.unknownFields == rhs.unknownFields
|
||||
}
|
||||
|
||||
func isEqualTo(message: any SwiftProtobuf.Message) -> Bool {
|
||||
guard let other = message as? Self else { return false }
|
||||
return self == other
|
||||
}
|
||||
}
|
||||
|
||||
struct Appleintelligence_CompletionResponse: Sendable, SwiftProtobuf.Message {
|
||||
static let protoMessageName: String = "appleintelligence.CompletionResponse"
|
||||
|
||||
var id: String = ""
|
||||
var text: String = ""
|
||||
var finishReason: String = ""
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularStringField(value: &id)
|
||||
case 2: try decoder.decodeSingularStringField(value: &text)
|
||||
case 3: try decoder.decodeSingularStringField(value: &finishReason)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if !id.isEmpty {
|
||||
try visitor.visitSingularStringField(value: id, fieldNumber: 1)
|
||||
}
|
||||
if !text.isEmpty {
|
||||
try visitor.visitSingularStringField(value: text, fieldNumber: 2)
|
||||
}
|
||||
if !finishReason.isEmpty {
|
||||
try visitor.visitSingularStringField(value: finishReason, fieldNumber: 3)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.id == rhs.id && lhs.text == rhs.text && lhs.finishReason == rhs.finishReason && lhs.unknownFields == rhs.unknownFields
|
||||
}
|
||||
|
||||
func isEqualTo(message: any SwiftProtobuf.Message) -> Bool {
|
||||
guard let other = message as? Self else { return false }
|
||||
return self == other
|
||||
}
|
||||
}
|
||||
|
||||
struct Appleintelligence_CompletionChunk: Sendable, SwiftProtobuf.Message {
|
||||
static let protoMessageName: String = "appleintelligence.CompletionChunk"
|
||||
|
||||
var id: String = ""
|
||||
var delta: String = ""
|
||||
var isFinal: Bool = false
|
||||
var finishReason: String = ""
|
||||
|
||||
var hasFinishReason: Bool {
|
||||
!finishReason.isEmpty
|
||||
}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularStringField(value: &id)
|
||||
case 2: try decoder.decodeSingularStringField(value: &delta)
|
||||
case 3: try decoder.decodeSingularBoolField(value: &isFinal)
|
||||
case 4: try decoder.decodeSingularStringField(value: &finishReason)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if !id.isEmpty {
|
||||
try visitor.visitSingularStringField(value: id, fieldNumber: 1)
|
||||
}
|
||||
if !delta.isEmpty {
|
||||
try visitor.visitSingularStringField(value: delta, fieldNumber: 2)
|
||||
}
|
||||
if isFinal {
|
||||
try visitor.visitSingularBoolField(value: isFinal, fieldNumber: 3)
|
||||
}
|
||||
if !finishReason.isEmpty {
|
||||
try visitor.visitSingularStringField(value: finishReason, fieldNumber: 4)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.id == rhs.id && lhs.delta == rhs.delta && lhs.isFinal == rhs.isFinal && lhs.finishReason == rhs.finishReason && lhs.unknownFields == rhs.unknownFields
|
||||
}
|
||||
|
||||
func isEqualTo(message: any SwiftProtobuf.Message) -> Bool {
|
||||
guard let other = message as? Self else { return false }
|
||||
return self == other
|
||||
}
|
||||
}
|
||||
|
||||
struct Appleintelligence_HealthRequest: Sendable, SwiftProtobuf.Message {
|
||||
static let protoMessageName: String = "appleintelligence.HealthRequest"
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let _ = try decoder.nextFieldNumber() {}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.unknownFields == rhs.unknownFields
|
||||
}
|
||||
|
||||
func isEqualTo(message: any SwiftProtobuf.Message) -> Bool {
|
||||
guard let other = message as? Self else { return false }
|
||||
return self == other
|
||||
}
|
||||
}
|
||||
|
||||
struct Appleintelligence_HealthResponse: Sendable, SwiftProtobuf.Message {
|
||||
static let protoMessageName: String = "appleintelligence.HealthResponse"
|
||||
|
||||
var healthy: Bool = false
|
||||
var modelStatus: String = ""
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularBoolField(value: &healthy)
|
||||
case 2: try decoder.decodeSingularStringField(value: &modelStatus)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if healthy {
|
||||
try visitor.visitSingularBoolField(value: healthy, fieldNumber: 1)
|
||||
}
|
||||
if !modelStatus.isEmpty {
|
||||
try visitor.visitSingularStringField(value: modelStatus, fieldNumber: 2)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
static func ==(lhs: Self, rhs: Self) -> Bool {
|
||||
lhs.healthy == rhs.healthy && lhs.modelStatus == rhs.modelStatus && lhs.unknownFields == rhs.unknownFields
|
||||
}
|
||||
|
||||
func isEqualTo(message: any SwiftProtobuf.Message) -> Bool {
|
||||
guard let other = message as? Self else { return false }
|
||||
return self == other
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user