- Restructure project into three targets: - AppleIntelligenceCore: Shared gRPC service code - AppleIntelligenceServer: CLI server - AppleIntelligenceApp: Menu bar app - Menu bar app features: - Toggle server on/off from menu bar - Chat window with streaming AI responses - Settings: host, port, API key, auto-start, launch at login - Proper window focus handling for menu bar apps - Add build scripts for distribution: - build-app.sh: Creates signed .app bundle - create-dmg.sh: Creates distributable DMG 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
2.3 KiB
Swift
62 lines
2.3 KiB
Swift
// swift-tools-version: 6.2
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "AppleIntelligenceGRPC",
|
|
platforms: [
|
|
.macOS(.v26)
|
|
],
|
|
products: [
|
|
.executable(name: "AppleIntelligenceServer", targets: ["AppleIntelligenceServer"]),
|
|
.executable(name: "AppleIntelligenceApp", targets: ["AppleIntelligenceApp"]),
|
|
],
|
|
dependencies: [
|
|
.package(url: "https://github.com/grpc/grpc-swift.git", from: "2.0.0"),
|
|
.package(url: "https://github.com/grpc/grpc-swift-nio-transport.git", from: "1.0.0"),
|
|
.package(url: "https://github.com/grpc/grpc-swift-protobuf.git", from: "1.0.0"),
|
|
.package(url: "https://github.com/apple/swift-protobuf.git", from: "1.28.0"),
|
|
.package(url: "https://github.com/apple/swift-argument-parser.git", from: "1.3.0"),
|
|
],
|
|
targets: [
|
|
// Shared library with gRPC service code
|
|
.target(
|
|
name: "AppleIntelligenceCore",
|
|
dependencies: [
|
|
.product(name: "GRPCCore", package: "grpc-swift"),
|
|
.product(name: "GRPCNIOTransportHTTP2", package: "grpc-swift-nio-transport"),
|
|
.product(name: "GRPCProtobuf", package: "grpc-swift-protobuf"),
|
|
.product(name: "SwiftProtobuf", package: "swift-protobuf"),
|
|
],
|
|
swiftSettings: [
|
|
.unsafeFlags(["-Xfrontend", "-suppress-warnings"])
|
|
]
|
|
),
|
|
// CLI server (original)
|
|
.executableTarget(
|
|
name: "AppleIntelligenceServer",
|
|
dependencies: [
|
|
"AppleIntelligenceCore",
|
|
.product(name: "ArgumentParser", package: "swift-argument-parser"),
|
|
],
|
|
swiftSettings: [
|
|
.unsafeFlags(["-parse-as-library"]),
|
|
.unsafeFlags(["-Xfrontend", "-suppress-warnings"])
|
|
]
|
|
),
|
|
// Menu bar app
|
|
.executableTarget(
|
|
name: "AppleIntelligenceApp",
|
|
dependencies: [
|
|
"AppleIntelligenceCore",
|
|
],
|
|
exclude: [
|
|
"Info.plist"
|
|
],
|
|
swiftSettings: [
|
|
.unsafeFlags(["-parse-as-library"]),
|
|
.unsafeFlags(["-Xfrontend", "-suppress-warnings"])
|
|
]
|
|
),
|
|
]
|
|
)
|