- packages/Keychain — zero SPM deps (Security.framework at link time only) - packages/Logging — depends on apple/swift-log 1.5.3+; library product is named JarvisLogging to avoid collision with swift-log's own Logging module - packages/Config — depends on Keychain + Logging (product JarvisLogging) - packages/Shell — depends on Config + Logging; links AppKit, ServiceManagement, IOKit, Carbon for hotkey/launch-at-login surfaces Every target (main + test) opts into .swiftLanguageMode(.v6) per D-04 so data-race errors are compile-time failures, not warnings. Placeholder sources (one per package) plus one trivial XCTest per package per D-03 so each package builds standalone and has a passing test. Real sources land in Plan 02 (Keychain/Config/Logging) and Plan 04 (Shell). Bus/LLM/MCP/Voice/Memory packages NOT pre-created per D-01 — they arrive in their owning phases (P2/P4/P5/P6/P7) to keep rebuild scope tight.
36 lines
994 B
Swift
36 lines
994 B
Swift
// swift-tools-version:6.0
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "Shell",
|
|
platforms: [.macOS(.v13)],
|
|
products: [
|
|
.library(name: "Shell", targets: ["Shell"]),
|
|
],
|
|
dependencies: [
|
|
.package(path: "../Config"),
|
|
.package(path: "../Logging"),
|
|
],
|
|
targets: [
|
|
.target(
|
|
name: "Shell",
|
|
dependencies: [
|
|
.product(name: "Config", package: "Config"),
|
|
.product(name: "JarvisLogging", package: "Logging"),
|
|
],
|
|
swiftSettings: [.swiftLanguageMode(.v6)],
|
|
linkerSettings: [
|
|
.linkedFramework("AppKit"),
|
|
.linkedFramework("ServiceManagement"),
|
|
.linkedFramework("IOKit"),
|
|
.linkedFramework("Carbon"),
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "ShellTests",
|
|
dependencies: ["Shell"],
|
|
swiftSettings: [.swiftLanguageMode(.v6)]
|
|
),
|
|
]
|
|
)
|